如何在张量流中使用微调模型?

时间:2017-03-25 05:08:59

标签: tensorflow deep-learning

我使用经过培训的AlexNet对我的数据库进行微调。现在,当我存储会话时,我得到了三个文件 model.ckpt.meta,model.ckpt.index,model.ckpt.data。 现在,如何使用新的权重和模型来预测其他图像。

另外,有没有办法以.npy格式存储权重?

1 个答案:

答案 0 :(得分:0)

根据TensorFlow docs,您可以使用Saver对象保存变量,并使用相同的方法加载。如下:

# Create some variables.
v1 = tf.Variable(..., name="v1")
v2 = tf.Variable(..., name="v2")

saver = tf.train.Saver()

if training:
  initialize()
  train()
  save_path = saver.save(sess, "/tmp/model.ckpt") # save your variables

if testing:
  saver.restore(sess, "/tmp/model.ckpt") # load your variables
  predict()

TensorFlow变量以自己的格式保存。要将变量保存为Numpy,您需要将会话中的张量作为numpy数组,然后使用Numpy docs中提到的Numpy保存/加载:

# After training
v1_np = sess.run(v1, your_data) # get numpy array from TensorFlow
np.save('/tmp/123', v1_np) # save to numpy format

# something else happens here

# Load the numpy variables
v1_np = vnp.load('/tmp/123.npy')
v1 = tf.Variable(v1_np) # initialize your tf variable with numpy values

为什么你想这样做是神秘的