Torch7学习笔记(三)Sequencialization

1.序列化

Torch提供4种高级方法来序列化或者反序列化任意Lua/Torch对象。这些方法都是从File对象抽象出来的,为了方便操作而创建。

 

前两种方法用来从文件序列化或者反序列化的:

torch.save(filename,object [, format])

[object] torch.load(filename [, format])

 

下面两个函数是从字符串中序列化或者反序列化的:

[str] torch.serialize(object [,format])

[object] torch.deserialize(str [,format])

 

序列化成文件可用于保存任意类型数据结构,共享之类的。序列化为字符串的好处在于数据结构可以保存在数据库中,或者第三方软件中。

 

下面详细讲解各个函数的用法。

1.1 torch.save(filename,object [, format])

把object对象写入文件filename中,format可选为ascii和binary,默认是binary。二进制类型是与平台相关的,但是很紧凑并且读写速度很快。ASCII类型与平台无关,可以跨平台共享。

 

-- arbitrary object:

obj = {

   mat = torch.randn(10,10),

   name = '10',

   test = {

      entry = 1

   }

}

 

-- save to disk:

torch.save('test.dat', obj)

 

1.2 [object] torch.load(filename [, format])

从文件中读取对象。

 

-- 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}

1.3 [str] torch.serialize(object [,format])

将对象序列化为字符串(

-- arbitrary object:

obj = {

   mat = torch.randn(10,10),

   name = '10',

   test = {

      entry = 1

   }

}

 

-- serialize:

str = torch.serialize(obj)

1.4 [object] torch.deserialize(str [,format])

从字符串中反序列化对象,默认仍然是binary的。

-- 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}

 

posted @ 2015-09-21 17:08  kevinTien  阅读(1186)  评论(0编辑  收藏  举报