blob: 42bde46f8382addd614064951f37703f17834add [file] [log] [blame] [view]
<a name="torch.serialization.dok"/>
# Serialization #
Torch provides 4 high-level methods to serialize/deserialize arbitrary Lua/Torch objects.
These functions are just abstractions over the [File](#torch.File) object, and were created
for convenience (these are very common routines).
The first two functions are useful to serialize/deserialize data to/from files:
- `torch.save(filename, object [, format])`
- `[object] torch.load(filename [, format])`
The next two functions are useful to serialize/deserialize data to/from strings:
- `[str] torch.serialize(object)`
- `[object] torch.deserialize(str)`
Serializing to files is useful to save arbitrary data structures, or share them with other people.
Serializing to strings is useful to store arbitrary data structures in databases, or 3rd party
software.
<a name="torch.save"/>
### torch.save(filename, object [, format]) ###
Writes `object` into a file named `filename`. The `format` can be set
to `ascii` or `binary` (default is binary). Binary format is platform
dependent, but typically more compact and faster to read/write. The ASCII
format is platform-independent, and should be used to share data structures
across platforms.
```
-- arbitrary object:
obj = {
mat = torch.randn(10,10),
name = '10',
test = {
entry = 1
}
}
-- save to disk:
torch.save('test.dat', obj)
```
<a name="torch.load"/>
### [object] torch.load(filename [, format]) ###
Reads `object` from a file named `filename`. The `format` can be set
to `ascii` or `binary` (default is binary). Binary format is platform
dependent, but typically more compact and faster to read/write. The ASCII
format is platform-independent, and should be used to share data structures
across platforms.
```
-- given serialized object from section above, reload:
obj = torch.load('test.dat')
print(obj)
-- will print:
-- {[mat] = DoubleTensor - size: 10x10
-- [name] = string : "10"
-- [test] = table - size: 0}
```
<a name="torch.serialize"/>
### [str] torch.serialize(object) ###
Serializes `object` into a string.
```
-- arbitrary object:
obj = {
mat = torch.randn(10,10),
name = '10',
test = {
entry = 1
}
}
-- serialize:
str = torch.serialize(obj)
```
<a name="torch.deserialize"/>
### [object] torch.deserialize(str) ###
Deserializes `object` from a string.
```
-- given serialized object from section above, deserialize:
obj = torch.deserialize(str)
print(obj)
-- will print:
-- {[mat] = DoubleTensor - size: 10x10
-- [name] = string : "10"
-- [test] = table - size: 0}
```