[英]Keras Weights Saving
我正在使用预训练的Keras模型MobileNets。 我正在尝试将一个图层的权重保存在文本文件中。 权重矩阵的维数如下:
layerr = model.layers[2].get_weights()
print(layerr.shape)
(1, 3, 3, 3, 32)
对于哪个3对应于通道,哪个对应于高度和宽度,我感到困惑。 我知道32对应于过滤器的数量。
另外,如果您可以帮助我将它们另存为线性矩阵,那将非常好!
有点奇怪, get_weights()
应该返回一个列表,在此代码中情况并非如此。 无论如何,假设您从列表中选择了正确的数组,并假设它是3D卷积...(否则有些事情不太正确,我想请您分享确切的图层定义)。
听起来像是3D卷积滤波器,其中这些数字按顺序排列:
保存numpy数组有几种方法。 我喜欢numpy.save()
。
np.save('filename.npy', layerr)
您还可以创建一个文本文件并将其另存为文本:
with open('filename.txt', 'w') as f:
f.write(str(layerr))
不确定“线性矩阵”是什么,但是如果只需要一个维度,则可以调整形状:
flatWeights = layerr.reshape((-1,))
#then save
但是,如果要保存以后使用,最好使用model.save()
或model.save_weights()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.