标签:参数初始化 知识库 小白 了解 程序 tips prot str 例子
我是小白,说的不是很好,请原谅
@author:wepon
@blog:http://blog.csdn.net/u012162613/article/details/43169019
参考:pickle — Python object serialization、DeepLearning Getting started
一、python读取"***.pkl.gz"文件
用到Python里的gzip以及cPickle模块,简单的使用代码如下,如果想详细了解可以参考上面给出的链接。
- import cPickle, gzip
- f = gzip.open(‘mnist.pkl.gz‘, ‘rb‘)
- train_set, valid_set, test_set = cPickle.load(f)
- f.close()
其实就是分两步,先读取gz文件,再读取pkl文件。pkl文件的应用正是下文要讲的,我们用它来保存机器学习算法训练过程中的参数。
二、机器学习算法在训练过程中如何保存参数?
我们知道,机器学习算法的计算量特别大,跑起程序来少则几十分钟,多则几小时甚至几天,中间如果有什么状况(比如电脑过热重启、程序出现一些小bug...)程序就会中断,如果你没把参数定时保存下来,前面的训练就当白费了,所以很有必要在程序中加入定时保存参数的功能,这样下次训练就可以将参数初始化为上次保存下来的结果,而不是从头开始随机初始化。
那么如何保存模型参数?可以将参数深复制,或者调用python的数据永久存储cPickle模块,原理不多说,直接使用就行。(注:python里有cPickle和pickle,cPickle基于c实现,比pickle快。)
直接用一个例子来说明如何使用:
- a=[1,2,3]
- b={4:5,6:7}
- import cPickle
- write_file=open(‘/home/wepon/ab‘,‘wb‘)
- cPickle.dump(a,write_file,-1)
- cPickle.dump(b,write_file,-1)
- write_file.close()
-
- read_file=open(‘/home/wepon/ab‘,‘rb‘)
- a_1=cPickle.load(read_file)
- b_1=cPickle.load(read_file)
- print a,b
- read_file.close()
微信号码筛选软件 微信手机号过滤工具
在deeplearning算法中,因为用到GPU,经常是将参数声明为shared变量,因此必须用上get_value()、set_value,例如有w、v、u三个shared变量,使用代码如下:
- import cPickle
- write_file = open(‘path‘, ‘wb‘)
- cPickle.dump(w.get_value(borrow=True), write_file, -1)
- cPickle.dump(v.get_value(borrow=True), write_file, -1)
- cPickle.dump(u.get_value(borrow=True), write_file, -1)
- write_file.close()
-
- read_file = open(‘path‘)
- w.set_value(cPickle.load(read_file), borrow=True)
- v.set_value(cPickle.load(read_file), borrow=True)
- u.set_value(cPickle.load(read_file), borrow=True)
- read_file.close()
DeepLearning tutorial(2)机器学习算法在训练过程中保存参数
标签:参数初始化 知识库 小白 了解 程序 tips prot str 例子
原文地址:http://www.cnblogs.com/zaiyini/p/7011004.html