mrpro.data.AcqIdx
- class mrpro.data.AcqIdx[source]
Bases:
MoveDataMixin
Acquisition index for each readout.
- __init__(k1: Tensor, k2: Tensor, average: Tensor, slice: Tensor, contrast: Tensor, phase: Tensor, repetition: Tensor, set: Tensor, segment: Tensor, user0: Tensor, user1: Tensor, user2: Tensor, user3: Tensor, user4: Tensor, user5: Tensor, user6: Tensor, user7: Tensor) None
- property device: device | None[source]
Return the device of the tensors.
Looks at each field of a dataclass implementing a device attribute, such as
torch.Tensor
orMoveDataMixin
instances. If the devices of the fields differ, anInconsistentDeviceError
is raised, otherwise the device is returned. If no field implements a device attribute, None is returned.- Raises:
InconsistentDeviceError – If the devices of different fields differ.
- Returns:
The device of the fields or
None
if no field implements adevice
attribute.
- property is_cpu: bool[source]
Return True if all tensors are on the CPU.
Checks all tensor attributes of the dataclass for their device, (recursively if an attribute is a
MoveDataMixin
)Returns
False
if not all tensors are on cpu or if the device is inconsistent, returnsTrue
if the data class has no tensors as attributes.
- property is_cuda: bool[source]
Return
True
if all tensors are on a single CUDA device.Checks all tensor attributes of the dataclass for their device, (recursively if an attribute is a
MoveDataMixin
)Returns
False
if not all tensors are on the same CUDA devices, or if the device is inconsistent, returnsTrue
if the data class has no tensors as attributes.
- apply(function: Callable[[Any], Any] | None = None, *, recurse: bool = True) Self [source]
Apply a function to all children. Returns a new object.
- apply_(function: Callable[[Any], Any] | None = None, *, memo: dict[int, Any] | None = None, recurse: bool = True) Self [source]
Apply a function to all children in-place.
- Parameters:
function (
Callable
[[Any
],Any
] |None
, default:None
) – The function to apply to all fields.None
is interpreted as a no-op.memo (
dict
[int
,Any
] |None
, default:None
) – A dictionary to keep track of objects that the function has already been applied to, to avoid multiple applications. This is useful if the object has a circular reference.recurse (
bool
, default:True
) – IfTrue
, the function will be applied to all children that areMoveDataMixin
instances.
- cpu(*, memory_format: memory_format = torch.preserve_format, copy: bool = False) Self [source]
Put in CPU memory.
- Parameters:
memory_format (
memory_format
, default:torch.preserve_format
) – The desired memory format of returned tensor.copy (
bool
, default:False
) – IfTrue
, the returned tensor will always be a copy, even if the input was already on the correct device. This will also create new tensors for views.
- cuda(device: device | str | int | None = None, *, non_blocking: bool = False, memory_format: memory_format = torch.preserve_format, copy: bool = False) Self [source]
Put object in CUDA memory.
- Parameters:
device (
device
|str
|int
|None
, default:None
) – The destination GPU device. Defaults to the current CUDA device.non_blocking (
bool
, default:False
) – IfTrue
and the source is in pinned memory, the copy will be asynchronous with respect to the host. Otherwise, the argument has no effect.memory_format (
memory_format
, default:torch.preserve_format
) – The desired memory format of returned tensor.copy (
bool
, default:False
) – IfTrue
, the returned tensor will always be a copy, even if the input was already on the correct device. This will also create new tensors for views.
- double(*, memory_format: memory_format = torch.preserve_format, copy: bool = False) Self [source]
Convert all float tensors to double precision.
converts
float
tofloat64
andcomplex
tocomplex128
- Parameters:
memory_format (
memory_format
, default:torch.preserve_format
) – The desired memory format of returned tensor.copy (
bool
, default:False
) – IfTrue
, the returned tensor will always be a copy, even if the input was already on the correct device. This will also create new tensors for views.
- half(*, memory_format: memory_format = torch.preserve_format, copy: bool = False) Self [source]
Convert all float tensors to half precision.
converts
float
tofloat16
andcomplex
tocomplex32
- Parameters:
memory_format (
memory_format
, default:torch.preserve_format
) – The desired memory format of returned tensor.copy (
bool
, default:False
) – IfTrue
, the returned tensor will always be a copy, even if the input was already on the correct device. This will also create new tensors for views.
- single(*, memory_format: memory_format = torch.preserve_format, copy: bool = False) Self [source]
Convert all float tensors to single precision.
converts
float
tofloat32
andcomplex
tocomplex64
- Parameters:
memory_format (
memory_format
, default:torch.preserve_format
) – The desired memory format of returned tensor.copy (
bool
, default:False
) – IfTrue
, the returned tensor will always be a copy, even if the input was already on the correct device. This will also create new tensors for views.
- to(device: str | device | int | None = None, dtype: dtype | None = None, non_blocking: bool = False, *, copy: bool = False, memory_format: memory_format | None = None) Self [source]
- to(dtype: dtype, non_blocking: bool = False, *, copy: bool = False, memory_format: memory_format | None = None) Self
- to(tensor: Tensor, non_blocking: bool = False, *, copy: bool = False, memory_format: memory_format | None = None) Self
Perform dtype and/or device conversion of data.
A
torch.dtype
andtorch.device
are inferred from the arguments args and kwargs. Please have a look at the documentation oftorch.Tensor.to
for more details.A new instance of the dataclass will be returned.
The conversion will be applied to all Tensor- or Module fields of the dataclass, and to all fields that implement the
MoveDataMixin
.The dtype-type, i.e. float or complex will always be preserved, but the precision of floating point dtypes might be changed.
Example: If called with
dtype=torch.float32
ORdtype=torch.complex64
:A
complex128
tensor will be converted tocomplex64
A
float64
tensor will be converted tofloat32
A
bool
tensor will remainbool
An
int64
tensor will remainint64
If other conversions are desired, please use the
to
method of the fields directly.If the copy argument is set to
True
(default), a deep copy will be returned even if no conversion is necessary. If two fields are views of the same data before, in the result they will be independent copies if copy is set toTrue
or a conversion is necessary. If set toFalse
, some Tensors might be shared between the original and the new object.
- __eq__(other)
Return self==value.
- __new__(**kwargs)