2017-02-11 60 views
1

我是tensorflow和python的新手。我試圖用.ckpt擴展名保存我訓練的神經網絡模型。爲此,我用下面的代碼:如何用.ckpt擴展名代替.meta在張量流中使用python擴展保存神經網絡模型?

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 extenssion。任何人都可以幫我保存模型與.ckpt擴展?

回答

0

你的代碼很好:你不需要用.ckpt擴展名來保存檢查點。

僅在.ckpt擴展名中使用了檢查點文件的版本1(V1)。 從Tensorflow 0.12可以讀取檢查點V1,但是當您保存新的檢查點時,它將使用V2格式,其中您選擇的名稱只是.meta.index文件的前綴。

如果你真的需要寫一個.ckpt文件,你必須降級Tensorflow安裝的東西<0.12

+0

我怎麼能恢復.META查分? – manoos