如何使用python保存带有.ckpt扩展名的神经网络模型而不是.meta extnsion in tensorflow?

时间:2017-02-11 14:08:08

标签: python-3.x tensorflow

我是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扩展名的模型吗?

1 个答案:

答案 0 :(得分:0)

您的代码很好:您无需使用.ckpt扩展名保存检查点。

.ckpt扩展名用于检查点文件的版本1(V1)。 从Tensorflow 0.12可以读取检查点V1,但是当您保存新检查点时,它将使用V2格式,您选择的名称只是.meta.index的前缀文件。

如果您确实需要编写.ckpt文件,则必须将Tensorflow安装降级为<0.12