Tensorflow:如何使用cifar10中的tf.train.batch绘制小批量?

Tensorflow:如何使用cifar10中的tf.train.batch绘制小批量?,tensorflow,Tensorflow,我正在尝试从cifar10二进制文件中绘制小批量。 当实现下面显示的代码时(请参见[源代码]),机器(python 3.6)会不断显示消息(请参见[控制台])并停止 有人能告诉我我的源代码有什么问题吗 另外,我是tensorflow的新手 [源代码]------------------------------------------------------------- 导入tensorflow作为tf 将numpy作为np导入 导入操作系统 将matplotlib.pyplot作为plt导入

我正在尝试从cifar10二进制文件中绘制小批量。 当实现下面显示的代码时(请参见[源代码]),机器(python 3.6)会不断显示消息(请参见[控制台])并停止

有人能告诉我我的源代码有什么问题吗

另外,我是tensorflow的新手

[源代码]------------------------------------------------------------- 导入tensorflow作为tf 将numpy作为np导入 导入操作系统 将matplotlib.pyplot作为plt导入

def_获取_图像_和_标签():

使用tf.Session()作为sess: sess.run(tf.global\u variables\u initializer())

sess.close()

[控制台]-------------------------------------------------------------/home/dooseop/anaconda3/bin/python/home/dooseop/pycharm-community-2016.3.3/helpers/pydev/pydev.py--multiproc--qt支持--client 127.0.0.1--port 40623--file/home/dooseop/pycharm项目/Tensorflow/CIFAR10_main.py 警告:找不到使用cython的调试器加速。运行'/home/dooseop/anaconda3/bin/python'/home/dooseop/pycharm-community-2016.3.3/helpers/pydev/setup\u cython.py“build\u ext--inplace”进行构建。 已连接到pydev调试器(版本163.15188.4) pydev调试器:进程10992正在连接

I tensorflow/stream_executor/dso_loader.cc:135]在本地成功打开了CUDA库libcublas.so.8.0 I tensorflow/stream_executor/dso_loader.cc:135]在本地成功打开了CUDA库libcudnn.so.5 I tensorflow/stream_executor/dso_loader.cc:135]在本地成功打开了CUDA库libcuft.so.8.0 I tensorflow/stream_executor/dso_loader.cc:135]在本地成功打开了CUDA库libcuda.so.1 I tensorflow/stream_executor/dso_loader.cc:135]在本地成功打开了CUDA库libcurand.so.8.0 W tensorflow/core/platform/cpu_feature_guard.cc:45]tensorflow库的编译不是为了使用SSE3指令,但这些指令在您的机器上可用,可以加快cpu计算。 W tensorflow/core/platform/cpu_feature_guard.cc:45]tensorflow库的编译不是为了使用SSE4.1指令,但这些指令在您的机器上可用,可以加快cpu计算。 W tensorflow/core/platform/cpu_feature_guard.cc:45]tensorflow库的编译不是为了使用SSE4.2指令,但这些指令在您的机器上可用,可以加快cpu计算。 W tensorflow/core/platform/cpu\u feature\u guard.cc:45]tensorflow库的编译不是为了使用AVX指令,但这些指令在您的机器上可用,可以加快cpu计算。 W tensorflow/core/platform/cpu\u feature\u guard.cc:45]tensorflow库的编译不是为了使用AVX2指令,但这些指令在您的机器上可用,可以加快cpu计算。 W tensorflow/core/platform/cpu\u feature\u guard.cc:45]tensorflow库的编译不是为了使用FMA指令,但是这些指令可以在您的机器上使用,并且可以加快cpu计算。 I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:910]从SysFS成功读取的NUMA节点的值为负值(-1),但必须至少有一个NUMA节点,因此返回NUMA节点零 I tensorflow/core/common_runtime/gpu/gpu_device.cc:885]找到了具有以下属性的设备0: 名称:GeForce GTX 1070 大调:6小调:1记忆时钟频率(GHz)1.683 pciBusID 0000:01:00.0 总内存:7.92GiB 可用内存:7.17GiB I tensorflow/core/common_runtime/gpu/gpu_device.cc:906]DMA:0 I tensorflow/core/common_runtime/gpu/gpu_device.cc:916]0:Y I tensorflow/core/common_runtime/gpu/gpu_device.cc:975]创建tensorflow设备(/gpu:0)->(设备:0,名称:GeForce GTX 1070,pci总线id:0000:01:00.0)


进程以退出代码137结束(被信号9:SIGKILL中断)

SIGKILL仅在有人明确终止程序时发生。这里的问题是,在创建队列运行程序之前(因为它们是由tf.train.batch创建的),正在调用start\u queue\u运行程序。此外,为了获得更好的性能,只需构建一次图表,并在循环中运行它,如下所示:

image, label = _get_image_and_label()
image_batch, lable_batch = tf.train.batch([image, label], batch_size=1)
image_batch_uint8 = tf.cast(image_batch, tf.uint8)

coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess=sess, coord=coord)
for i in range(10):
    final_image = sess.run(image_batch_uint8)
    imgplot = plt.imshow(final_image[0])

coord.request_stop()
coord.join(threads)

Sigkill仅在有人显式终止程序时发生。这里的问题是,在创建队列运行程序之前(因为它们是由tf.train.batch创建的),正在调用start\u queue\u运行程序。此外,为了获得更好的性能,只需构建一次图表,并在循环中运行它,如下所示:

image, label = _get_image_and_label()
image_batch, lable_batch = tf.train.batch([image, label], batch_size=1)
image_batch_uint8 = tf.cast(image_batch, tf.uint8)

coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess=sess, coord=coord)
for i in range(10):
    final_image = sess.run(image_batch_uint8)
    imgplot = plt.imshow(final_image[0])

coord.request_stop()
coord.join(threads)

其中大多数都是警告,表示某些编译器优化未启用。不确定是什么触发了程序退出。给姚张。“进程已完成,退出代码…”消息是由我的“按下调试停止按钮”导致的。对不起我的错误!不管怎样,问题已经解决了:)大多数警告都表示某些编译器优化没有打开。不确定是什么触发了程序退出。给姚张。“进程已完成,退出代码…”消息是由我的“按下调试停止按钮”导致的。对不起我的错误!无论如何,问题解决了:)
image, label = _get_image_and_label()
image_batch, lable_batch = tf.train.batch([image, label], batch_size=1)
image_batch_uint8 = tf.cast(image_batch, tf.uint8)

coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess=sess, coord=coord)
for i in range(10):
    final_image = sess.run(image_batch_uint8)
    imgplot = plt.imshow(final_image[0])

coord.request_stop()
coord.join(threads)