tensorflow错误
1.队列输入数据错误
错误语句:
enq_many = Q.enqueue_many([0.1, 0.2, 0.3])
出现的错误类型:
ValueError: Shape () must have rank at least 1
修改方法:
这里需要输入的是列表变量,如果输入一维,则默认输入的是tensor,需要加一个括号变成列表变量。
enq_many = Q.enqueue_many([[0.1, 0.2, 0.3],])
2.会话定义错误
错误语句:
with tf.Session as sess:
错误类型:
AttributeError: __exit__
修改方法:
with tf.Session() as sess:
3.子线程在会话结束后的释放问题
错误类型:
CancelledError (see above for traceback): Enqueue operation was cancelled
原因:
在会话中,主线程与子线程异步执行,当主线程的取数据和训练操作完成之后,主线程结束,会话结束,内存被释放。
但这时,子线程还在写入数据。
修改方法:
开启线程管理器回收子线程