Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 前置条件失败:读取资源变量block8\u sepconv3\u bn/gamma时出错_Python_Tensorflow_Keras - Fatal编程技术网

Python 前置条件失败:读取资源变量block8\u sepconv3\u bn/gamma时出错

Python 前置条件失败:读取资源变量block8\u sepconv3\u bn/gamma时出错,python,tensorflow,keras,Python,Tensorflow,Keras,我发现很少有关于这个错误的文档 :失败的前提条件:读取资源变量时出错 来自容器的block8_sepconv3_bn/gamma:localhost。这可能意味着 变量未初始化。未找到:资源 localhost/block8_speconv3_bn/gamma/class tensorflow::Var不支持 存在 我猜问题一定是在model.predict之前的train函数中,它与会话和线程有关,但我很乐意得到任何帮助 我使用: Python 3.7.8 Cuda 10.1 CUDNN v

我发现很少有关于这个错误的文档

:失败的前提条件:读取资源变量时出错 来自容器的block8_sepconv3_bn/gamma:localhost。这可能意味着 变量未初始化。未找到:资源 localhost/block8_speconv3_bn/gamma/class tensorflow::Var不支持 存在

我猜问题一定是在model.predict之前的train函数中,它与会话和线程有关,但我很乐意得到任何帮助

我使用:

  • Python 3.7.8
  • Cuda 10.1
  • CUDNN v7.6.5
  • Tensorflow 2.3.0
  • keras 2.4.3
您可以在此处找到我的代码:

编辑:好的,根据github上的以下评论,对此做了一些挖掘:

我也看了一下那个线程,并尝试了解决方案。但我可能做错了。我对会话、图形和线程的理解可能也有点平淡无奇,对此表示歉意

在常规导入后的脚本开始时,我在第70行创建了我的gpu_选项和SES:

gpu选项=tf.compat.v1.gpu选项(每进程gpu内存分数=内存分数)#TENSORFLOW不使用我所有的gpu PLZ
sess=set_会话(tf.compat.v1.session(config=tf.compat.v1.ConfigProto(gpu_选项=gpu_选项)))
我知道我也应该在这里全局声明图形,而不是在DQNAgent的init函数中声明它,因此也应该放:

graph=tf.compat.v1.get\u default\u graph()
然后,如果我对问题的理解是正确的,那么我应该在每次调用DQNAgent类的train函数中的.predict方法时设置会话

我想我应该使用以下语法:

全局sess
全局图
使用self.graph.as_default():
设置会话(sess)
当前_qs_列表=self.model.predict(当前_状态、预测_批量大小)
new_current_states=np.array([transition[3]表示小批量中的transition])/255
全局sess
全局图
使用self.graph.as_default():
设置会话(sess)
future\u qs\u list=self.target\u model.predict(新的\u当前\u状态,预测\u批量大小)
但我不确定是否应将其添加到此处,因为不涉及任何图表:

def get_qs(自身,状态):
return self.model.predict(np.array(state).reformate(-1,*state.shape)/255)[0]

这有意义吗?

有谁愿意看一看并给我一些见解吗?我想问题在于会议。我仍然必须将我的图形保留在init中,因为它随后在train函数中被调用。。