# Torch API

## Torch API

**safetensors.torch.load\_file**

[\<source>](https://github.com/huggingface/safetensors/blob/main/src/safetensors/torch.py#L284)

( filename: typing.Union\[str, os.PathLike]device = 'cpu' ) → `Dict[str, torch.Tensor]`

Parameters

* **filename** (`str`, or `os.PathLike`) — The name of the file which contains the tensors
* **device** (`Dict[str, any]`, *optional*, defaults to `cpu`) — The device where the tensors need to be located after load. available options are all regular torch device locations

Returns

`Dict[str, torch.Tensor]`

dictionary that contains name as key, value as `torch.Tensor`

Loads a safetensors file into torch format.

Example:

Copied

```
from safetensors.torch import load_file

file_path = "./my_folder/bert.safetensors"
loaded = load_file(file_path)
```

**safetensors.torch.load**

[\<source>](https://github.com/huggingface/safetensors/blob/main/src/safetensors/torch.py#L314)

( data: bytes ) → `Dict[str, torch.Tensor]`

Parameters

* **data** (`bytes`) — The content of a safetensors file

Returns

`Dict[str, torch.Tensor]`

dictionary that contains name as key, value as `torch.Tensor` on cpu

Loads a safetensors file into torch format from pure bytes.

Example:

Copied

```
from safetensors.torch import load

file_path = "./my_folder/bert.safetensors"
with open(file_path, "rb") as f:
    data = f.read()

loaded = load(data)
```

**safetensors.torch.save\_file**

[\<source>](https://github.com/huggingface/safetensors/blob/main/src/safetensors/torch.py#L250)

( tensors: typing.Dict\[str, torch.Tensor]filename: typing.Union\[str, os.PathLike]metadata: typing.Union\[typing.Dict\[str, str], NoneType] = None ) → `None`

Parameters

* **tensors** (`Dict[str, torch.Tensor]`) — The incoming tensors. Tensors need to be contiguous and dense.
* **filename** (`str`, or `os.PathLike`)) — The filename we’re saving into.
* **metadata** (`Dict[str, str]`, *optional*, defaults to `None`) — Optional text only metadata you might want to save in your header. For instance it can be useful to specify more about the underlying tensors. This is purely informative and does not affect tensor loading.

Returns

`None`

Saves a dictionary of tensors into raw bytes in safetensors format.

Example:

Copied

```
from safetensors.torch import save_file
import torch

tensors = {"embedding": torch.zeros((512, 1024)), "attention": torch.zeros((256, 256))}
save_file(tensors, "model.safetensors")
```

**safetensors.torch.save**

[\<source>](https://github.com/huggingface/safetensors/blob/main/src/safetensors/torch.py#L220)

( tensors: typing.Dict\[str, torch.Tensor]metadata: typing.Union\[typing.Dict\[str, str], NoneType] = None ) → `bytes`

Parameters

* **tensors** (`Dict[str, torch.Tensor]`) — The incoming tensors. Tensors need to be contiguous and dense.
* **metadata** (`Dict[str, str]`, *optional*, defaults to `None`) — Optional text only metadata you might want to save in your header. For instance it can be useful to specify more about the underlying tensors. This is purely informative and does not affect tensor loading.

Returns

`bytes`

The raw bytes representing the format

Saves a dictionary of tensors into raw bytes in safetensors format.

Example:

Copied

```
from safetensors.torch import save
import torch

tensors = {"embedding": torch.zeros((512, 1024)), "attention": torch.zeros((256, 256))}
byte_data = save(tensors)
```

**safetensors.torch.load\_model**

[\<source>](https://github.com/huggingface/safetensors/blob/main/src/safetensors/torch.py#L176)

( model: Modulefilename: typing.Union\[str, os.PathLike]strict = True ) → \`(missing, unexpected)

Parameters

* **model** (`torch.nn.Module`) — The model to load onto.
* **filename** (`str`, or `os.PathLike`) — The filename location to load the file from.
* **strict** (`bool`, *optional*, defaults to True) — Wether to fail if you’re missing keys or having unexpected ones When false, the function simply returns missing and unexpected names.

Returns

\`(missing, unexpected)

(List\[str], List\[str]) missing`are names in the model which were not modified during loading`unexpected\` are names that are on the file, but weren’t used during the load.

Loads a given filename onto a torch model. This method exists specifically to avoid tensor sharing issues which are not allowed in `safetensors`. [More information on tensor sharing](https://huggingface.co/docs/safetensors/torch_shared_tensors)

**safetensors.torch.save\_model**

[\<source>](https://github.com/huggingface/safetensors/blob/main/src/safetensors/torch.py#L130)

( model: Modulefilename: strmetadata: typing.Union\[typing.Dict\[str, str], NoneType] = Noneforce\_contiguous: bool = True )

Parameters

* **model** (`torch.nn.Module`) — The model to save on disk.
* **filename** (`str`) — The filename location to save the file
* **metadata** (`Dict[str, str]`, *optional*) — Extra information to save along with the file. Some metadata will be added for each dropped tensors. This information will not be enough to recover the entire shared structure but might help understanding things
* **force\_contiguous** (`boolean`, *optional*, defaults to True) — Forcing the state\_dict to be saved as contiguous tensors. This has no effect on the correctness of the model, but it could potentially change performance if the layout of the tensor was chosen specifically for that reason.

Saves a given torch model to specified filename. This method exists specifically to avoid tensor sharing issues which are not allowed in `safetensors`. [More information on tensor sharing](https://huggingface.co/docs/safetensors/torch_shared_tensors)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://boinc-ai.gitbook.io/safetensors/torch-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
