Instructions for updating: To construct input pipelines, use the `tf.data` module. Traceback (most recent call last): File "test.py", line 188, in <module> evaluate_images(test_img) File "test.py", line 167, in evaluate_images threads = tf.train.start_queue_runners(coord=coord) File "E:\anaconda\envs\tensorflow1\lib\site-packages\tensorflow_core\python\util\deprecation.py", line 324, in new_func return func(*args, **kwargs) File "E:\anaconda\envs\tensorflow1\lib\site-packages\tensorflow_core\python\training\queue_runner_impl.py", line 456, in start_queue_runners raise ValueError("Cannot start queue runners: No default session is " ValueError: Cannot start queue runners: No default session is registered. Use `with sess.as_default()` or pass an explicit session to tf.start_queue_runners(sess=sess)
时间: 2023-09-11 16:07:03 浏览: 230
ImageCraft-iccavr.rar_site:www.pudn.com
这个错误是因为在最新版本的 TensorFlow 中,使用 `tf.train.start_queue_runners` 启动队列运行器已被弃用,并且建议使用 `tf.compat.v1.train.start_queue_runners`。此外,你还需要在启动队列运行器之前创建并设置默认会话。
请尝试更新你的代码如下:
```python
import tensorflow as tf
def evaluate_images(test_img):
coord = tf.train.Coordinator()
with tf.compat.v1.Session() as sess: # 创建并设置默认会话
threads = tf.compat.v1.train.start_queue_runners(sess=sess, coord=coord) # 启动队列运行器
for index, img in enumerate(test_img):
image = Image.open(img)
image = image.resize([208, 208])
image_array = np.array(image)
# 在每个线程中调用 evaluate_one_image()
tf.compat.v1.threading.Thread(target=evaluate_one_image, args=(image_array, index)).start()
# 请求停止所有线程
coord.request_stop()
# 等待所有线程完成
coord.join(threads)
```
通过使用 `tf.compat.v1.Session()` 创建会话,并将其设置为默认会话,然后在 `tf.compat.v1.train.start_queue_runners` 中传递会话参数 `sess=sess`,应该能够解决此错误。
如果问题仍然存在,请提供更多关于你的代码和上下文的信息。
阅读全文