首页 > 解决方案 > tensorflow 中是否有类似 Pytorch 中的 load_state_dict() 的函数?

问题描述

就像已经描述的那样,我想知道在 tensorflow 中是否有类似的函数用于 load_state_dict(),就像 Pytorch 中的函数一样。为了演示一个场景,请参考以下代码:

# Suppose we have two correctly initialized neural networks: net2 and net1
# Using Pytorch
net2.load_state_dict(net1.state_dict())

有人有什么主意吗?

标签: tensorflowneural-networkdeep-learningpytorch

解决方案


下面的代码可能有助于在 tensorflow 中实现相同的目标:

保存模型

w1 = tf.Variable(tf.truncated_normal(shape=[10]), name='w1')
w2 = tf.Variable(tf.truncated_normal(shape=[20]), name='w2')
tf.add_to_collection('vars', w1)
tf.add_to_collection('vars', w2)
saver = tf.train.Saver()
sess = tf.Session()
sess.run(tf.global_variables_initializer())
saver.save(sess, 'my-model')
# `save` method will call `export_meta_graph` implicitly.
# you will get saved graph files:my-model.meta


恢复模型

sess = tf.Session()
new_saver = tf.train.import_meta_graph('my-model.meta')
new_saver.restore(sess, tf.train.latest_checkpoint('./'))
all_vars = tf.get_collection('vars')
for v in all_vars:
    v_ = sess.run(v)
    print(v_)

推荐阅读