Hello! I want to save a tensor to a file but when I do it using file.write(str(tensor)), what it writes is " tensor(-0.0947, device=‘cuda:0’, grad_fn=MeanBackward0". How can I save just the numerical value (-0.0947). thank you!

Use `torch.save(tensor, 'file.pt')`

and `torch.load('file.pt')`

If you have a single number in the tensor, you can get it by using tensor.item()

If you have a multidimensional tensor you can get just the data by doing tensor.data

what is the way to save it such that we get something like this when we load:

```
db = load(file_name)
tensor1 = db["tensor1"]
tensor2 = db["tensor2"]
... etc
```

I noticed that pickling might not be supported in the future (so `dill`

might not work later).

I am not saving model parameters. Just tensors.

You can save a python map:

```
m = {'a': tensor_a, 'b': tensor_b}
torch.save(m, file_name)
loaded = torch.load(file_name)
loaded['a'] == tensor_a
loaded['b'] == tensor_b
```

This is actually the same thing (with an OrderedDict) that happens when you store a model’s parameters using `torch.save(model.state_dict(), file)`

.

Do you know if it’s better to save the tensors as numpy data or torch tensors data?

Anyone aware of the pros & cons of using `numpy.save`

vs `torch.save`

?

I wonder if that will cause bugs when using the `ToTensor()`

transform if the data is already saved as torch tensors.

related: What is the recommended format to save data in pytorch?

fully functionable example:

```
#%%
import torch
from pathlib import Path
path = Path('~/data/tmp/').expanduser()
tensor_a = torch.rand(2,3)
tensor_b = torch.rand(1,3)
db = {'a': tensor_a, 'b': tensor_b}
torch.save(db, path/'torch_db')
loaded = torch.load(path/'torch_db')
print( loaded['a'] == tensor_a )
print( loaded['b'] == tensor_b )
```

Is there an approach to load the tensor file into a Dataloader? Because my tensor file is large and I need to iterate over each row.