我是tensorflow和python的新手。我试图用.ckpt
扩展名保存训练好的神经网络模型。为此,我使用了以下代码:
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
saver = tf.train.Saver()
for epoch in range(hm_epochs):
epoch_loss = 0
i =0;
while i < len(train_x):
start = i
end = i+batch_size
batch_x = np.array(train_x[start:end])
batch_y = np.array(train_y[start:end])
_, c = sess.run([optimizer, cost], feed_dict={x: batch_x, y: batch_y})
epoch_loss += c
i += batch_size
print('Epoch', epoch+1, 'completed out of',hm_epochs,'loss:',epoch_loss)
correct = tf.equal(tf.argmax(prediction, 1), tf.argmax(y, 1))
accuracy = tf.reduce_mean(tf.cast(correct, 'float'))
print('Accuracy:',accuracy.eval({x:test_x, y:test_y}))
saver.save(sess, 'my-model')
但这可以节省.meta
范围内的模型。任何人都可以帮助我保存.ckpt
扩展名的模型吗?
答案 0 :(得分:0)
您的代码很好:您无需使用.ckpt
扩展名保存检查点。
仅.ckpt
扩展名用于检查点文件的版本1(V1)。
从Tensorflow 0.12
可以读取检查点V1,但是当您保存新检查点时,它将使用V2格式,您选择的名称只是.meta
和.index
的前缀文件。
如果您确实需要编写.ckpt
文件,则必须将Tensorflow安装降级为<0.12