Python 如何保存神经网络的权值

Python 如何保存神经网络的权值,python,numpy,machine-learning,neural-network,Python,Numpy,Machine Learning,Neural Network,我面临的问题是如何在文本文件中保存经过训练的神经网络的权重。 这是我的密码 def网络(培训数据,文件名): 拉姆达=1 输入层=1200 输出层=10 隐藏层=25 X=培训数据[0] y=培训数据[1] θ1=随机初始化灯光(1200,25) θ2=随机初始化灯光(25,10) m、 n=np.形状(X) yk=重新标记(y,输出层) θ=np.r_[theta1.T.flatte(),theta2.T.flatte()] X_bias=np.r_[np.ones((1,X.shape[0

我面临的问题是如何在文本文件中保存经过训练的神经网络的权重。 这是我的密码

def网络(培训数据,文件名):
拉姆达=1
输入层=1200
输出层=10
隐藏层=25
X=培训数据[0]
y=培训数据[1]
θ1=随机初始化灯光(1200,25)
θ2=随机初始化灯光(25,10)
m、 n=np.形状(X)
yk=重新标记(y,输出层)
θ=np.r_[theta1.T.flatte(),theta2.T.flatte()]
X_bias=np.r_[np.ones((1,X.shape[0])),X.T]
#共轭梯度算法
结果=scipy.optimize.fmin\u cg(计算成本,fprime=computegradent,x0=theta,args=(输入层,隐藏层,输出层,X,y,lamda,yk,X偏移),最大值=100,显示=True,全输出=True)
打印结果[1]#最小值
θ1,θ2=参数展开(结果[0],输入层,隐藏层,输出层)
计数器=0
对于范围内的i(m):
预测=预测(X[i],θ1,θ2)
实际值=y[i]
如果(预测=实际):
计数器+=1
打印str(计数器*100/m)+%精度
数据={“Theta1”:[Theta1],
“θ2”:[θ2]}
op=open(文件名为'w')
dump(数据,op)

op.close()
将numpy数组保存为纯文本的最简单方法是执行(并加载)。但是,如果要使用JSON格式保存这两个文件,可以使用实例编写文件:

with StringIO as theta1IO:
    numpy.savetxt(theta1IO, theta1)
    data = {"theta1": theta1IO.getvalue() }
    # write as JSON as usual
您也可以使用其他参数来实现这一点

要检索数据,可以执行以下操作:

# read data from JSON
with StringIO as theta1IO:
    theta1IO.write(data['theta1'])
    theta1 = numpy.loadtxt(theta1IO)

θ1或θ2或两者都不可JSON序列化。它们是由函数paramUnroll返回的对象。那么它们是什么类型的对象呢?@PaulCornelius theta1和theta2是numpy数组
theta1.tolist()
。从文件加载写入的列表后,请记住再次初始化
numpy.array
。我们是否可以使用numpy将两个数组保存为单个文本文件中的字典。savetxt@IshankGulati如果它们有匹配的维度,文档会给出一种方法,但是您必须在np.loadtxt之后处理矩阵,以便分离两个矩阵。