我正在尝试从模型中提取所有可训练的权重。
在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}}]]
我在这里做错了什么?我假设会话/图形未正确链接到模型? 还是确实存在初始化问题(但随后该模型便能够成功进行训练)?