我目前遇到的几点比较容易出错的地方是:
1、输入的数据必须要定义在数据流图的内部。
使用从tfrecords中导入的数据,必须要定义在数据流图的内部。例如:
with tf.Graph().as_default():
x_p = ...
y_p = ...
2、初始化时不只是要加入全局变量,也要加入局部变量
### 把tf.initialize_all_variables()换成tf.global_variables_initializer()也是可以的
init_op = tf.group(tf.initialize_all_variables(), tf.local_variables_initializer())
sess.run(init_op)
3、初始化的参数定义时,要放在所有在sess.run中运行的变量定义之后,即下段代码中init_op必须得放在loss、accuracy、train_op定义之后。
loss = ...
train_op = tf.train.AdamOptimizer(...).minimize(loss)
accuracy = ...
init_op = tf.group(tf.global_variables_initializer(), tf.local_variables_initializer())
sess.run(init_op)
_, loss_value, accuracy_value= sess.run([train_op, loss, accuracy, feed_dict=...