在张量流中获取可训练参数的值

时间:2020-04-20 10:50:01

标签: python tensorflow

我正在尝试从模型中提取所有可训练的权重。 在pytorch中,类似的事情将由一行p.grad.data for p in model.parameters() if p.requires_grad完成,但是我在TF中寻求一个简单的解决方案。

我当前的尝试如下:

sess = tf.Session()

... #model initialization and training here

p = model.trainable_weights
p_vals = sess.run(p)

但是,最后一行会产生错误:

  File "/.../lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1356, in _do_call
    return fn(*args)
  File "/.../lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1341, in _run_fn
    options, feed_dict, fetch_list, target_list, run_metadata)
  File "/.../lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1429, in _call_tf_sessionrun
    run_metadata)
tensorflow.python.framework.errors_impl.FailedPreconditionError: Error while reading resource variable conv1/bias from Container: localhost. This could mean that the variable was uninitialized. Not found: Container localhost does not exist. (Could not find resource: localhost/conv1/bias)
     [[{{node conv1/bias/Read/ReadVariableOp}}]]

我在这里做错了什么?我假设会话/图形未正确链接到模型? 还是确实存在初始化问题(但随后该模型便能够成功进行训练)?

0 个答案:

没有答案