Convert an input value into a Numpy ndarray.
This method can be used with Python and Numpy data:
b = fe.backend.to_number(5) # 5 (type==np.ndarray)
b = fe.backend.to_number(4.0) # 4.0 (type==np.ndarray)
n = np.array([1, 2, 3])
b = fe.backend.to_number(n) # [1, 2, 3] (type==np.ndarray)
This method can be used with TensorFlow tensors:
t = tf.constant([1, 2, 3])
b = fe.backend.to_number(t) # [1, 2, 3] (type==np.ndarray)
This method can be used with PyTorch tensors:
p = torch.tensor([1, 2, 3])
b = fe.backend.to_number(p) # [1, 2, 3] (type==np.ndarray)
Parameters:
Name |
Type |
Description |
Default |
data |
Union[tf.Tensor, torch.Tensor, np.ndarray, int, float]
|
The value to be converted into a np.ndarray. |
required
|
Returns:
Type |
Description |
np.ndarray
|
An ndarray corresponding to the given data . |
Source code in fastestimator\fastestimator\backend\to_number.py
| def to_number(data: Union[tf.Tensor, torch.Tensor, np.ndarray, int, float]) -> np.ndarray:
"""Convert an input value into a Numpy ndarray.
This method can be used with Python and Numpy data:
```python
b = fe.backend.to_number(5) # 5 (type==np.ndarray)
b = fe.backend.to_number(4.0) # 4.0 (type==np.ndarray)
n = np.array([1, 2, 3])
b = fe.backend.to_number(n) # [1, 2, 3] (type==np.ndarray)
```
This method can be used with TensorFlow tensors:
```python
t = tf.constant([1, 2, 3])
b = fe.backend.to_number(t) # [1, 2, 3] (type==np.ndarray)
```
This method can be used with PyTorch tensors:
```python
p = torch.tensor([1, 2, 3])
b = fe.backend.to_number(p) # [1, 2, 3] (type==np.ndarray)
```
Args:
data: The value to be converted into a np.ndarray.
Returns:
An ndarray corresponding to the given `data`.
"""
if isinstance(data, tf.Tensor):
data = data.numpy()
elif isinstance(data, torch.Tensor):
if data.requires_grad:
data = data.detach().numpy()
else:
data = data.numpy()
return np.array(data)
|