【python】tensorflow框架下sess.run()读取数据卡住---解决方案

最近在tensorflow框架下调试代码时遇到sess.run()读取数据卡住的情况,搜索尝试了许多方法终于找到解决方案,希望遇到同样问题的小伙伴能尽快解决问题。

问题描述:img, label = sess.run([image, labels])

程序运行到改行进行数据读取时,不报错,但是程序卡在这条语句,无法往下执行

解决方案:在with tf.session() as sess: 部分加如下语句

coord = tf.train.Coordinator()
thread = tf.train.start_queue_runners(sess, coord)

详细解释:

image—图片保存路径列表(string类型);
labels—标签列表(int32类型);


由于数据量太大,因此在对图片数据我们通常采用批量处理的方式,也即一次处理batch_size(最小可以取为1)张图片,减轻CPU的负担,保证程序的正常运行。

而在此过程当中,数据经历的两次变换(现将原类型string / int32 均记为 numpy ):

numpy — tensor — numpy

所述的问题就是在第二次变换(由tensor转为numpy)时出现的


(1)由numpy转为tensor代码

def get_batch(image, label, image_W, image_H, batch_size, capacity):
    '''
    Args:
        image: list type
        label: list type
        image_W: image width
        image_H: image height
        batch_size: batch size
        capacity: the maximum elements in queue
    Returns:
        image_batch: 4D tensor [batch_size, width, height, 3], dtype=tf.float32
        label_batch: 1D tensor [batch_size], dtype=tf.int32
    '''
    # image_W, image_H, :设置好固定的图像高度和宽度
    # 设置batch_size:每个batch要放多少张图片
    # capacity:一个队列最大多少

    image = tf.cast(image, 
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值