发新帖

如何使用TensorFlow给不同尺寸图片打包成Batch

[复制链接]
1013 13

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
RT.
想做arbitrary size的训练,发现传给tf.train.shuffle_batch函数的参数必须是一样尺寸。
有人可以解决这个问题吗?要求不允许使用改变图片纵横比。
我知道答案 回答被采纳将会获得10 金币 已有13人回答
本楼点评(0) 收起

精彩评论13

舟3332  TF芽芽  发表于 2018-4-16 20:20:10 | 显示全部楼层
不同尺寸的照片是同一个图片横纵比吗?
本楼点评(1) 收起
TianLin  TF荚荚  发表于 2018-4-17 09:48:11 | 显示全部楼层
神经网络输入层的shape必须固定下来比如(None, 256, 256, 3),否则后面层的计算没法完成。对于不同图像大小,通常建议用tf.data先resize成固定的大小,https://tensorflow.google.cn/ver ... mers_guide/datasets
本楼点评(0) 收起
Googler  TF荚荚  发表于 2018-4-17 09:51:43 | 显示全部楼层
TianLin 发表于 2018-4-17 09:48
神经网络输入层的shape必须固定下来比如(None, 256, 256, 3),否则后面层的计算没法完成。对于不同图像大 ...

我自己的实现中,目前单张训练可以做到arbitrary size了。但是mini batch的方法还是不行。
有些任务就是有不可改变图片纵横比的需求,所以不知道有没有好的方法,于此和大家探讨一下。
本楼点评(0) 收起
TianLin  TF荚荚  发表于 2018-4-17 11:26:17 | 显示全部楼层
tf.data.Dataset 有map函数,对于每个image可以单独resize,则可以实现。
本楼点评(0) 收起
Googler  TF荚荚  发表于 2018-4-26 12:02:11 | 显示全部楼层
TianLin 发表于 2018-4-17 11:26
tf.data.Dataset 有map函数,对于每个image可以单独resize,则可以实现。

我倒是觉得很多图像任务中,是需要保持图片原有的纵横比,所以轻易不会去resize破坏其纵横比。
不知道TF能不能在未来某个时刻加入对不同尺寸图片打包成batch的支持。
本楼点评(0) 收起
M丶Sulayman  TF豆豆  发表于 2018-4-28 12:09:38 | 显示全部楼层
=,=有人解决这问题了么,我也要开始做图像的简单网络模型了,数据的导入很关键。
本楼点评(0) 收起
yunhai_luo  TF豆豆  发表于 2018-4-28 16:10:32 | 显示全部楼层
请问楼主能用不同尺寸图片输入的模型是什么样的?个人对这个模型更感兴趣,因为我的第一感觉是你的模型在某一层总是需要固定输入尺寸,否则你的权重和偏移难道也是无限的吗?

如果你不想丢失或者扭曲信息,是否考虑过填充?简言之,如果你的输入有一个可知的最大值,那么以那个最大值为输入尺寸,凡是不满足的都做填充。tf.train.batch中有dynamic_pad可以实现这一功能。
本楼点评(2) 收起
  • Googler单张训练  不用tf.train.batch函数 填充也考虑过但不想用哈哈
    2018-4-28 23:36 回复
  • yunhai_luo回复 Googler :刚看到一个SO的回答,感觉很相关,供参考:https://stackoverflow.com/questions/41907598/how-to-train-images-when-they-have-different-size#answer-41916066
    2018-5-1 00:43 回复
uyerp  TF荚荚  发表于 2018-5-10 10:46:49 | 显示全部楼层
tensorflow中好像没有现成的方法,我用了tensorpack的API来代替tf.train.batch ,tensorpack中有个BatchDataByShape,同一批次的数据具有相同的Shape。不同的数据可以用RandomResize,随机缩放高宽。这样就可以让模型在train时可以接受不同size的图片。
可以参考https://github.com/ppwwyyxx/tens ... examples/HED/hed.py中的get_data()
本楼点评(0) 收起
重庆不热  TF荚荚  发表于 2018-7-3 16:42:56 | 显示全部楼层
或许你可以自己用python或者对应语言的多线程来实现把不同尺寸的图片组合到一个batch里。
本楼点评(0) 收起
heliguang  TF荚荚  发表于 2018-7-3 18:19:56 | 显示全部楼层
有人解决这问题了么
本楼点评(0) 收起
ViolinSolo  TF豆豆  发表于 2018-7-3 20:35:57 | 显示全部楼层
我觉得你可以考虑手写shuffle,,,要不然怕是不行,tf的这些都是基于定长度的
本楼点评(0) 收起
neverchange  TF豆豆  发表于 2018-7-3 23:31:58 | 显示全部楼层
size不固定的话,需要先固定shape,这个是前提。当然,如果改进代码适应读取图片的size然后计算的话也可以。
本楼点评(0) 收起
jka  TF荚荚  发表于 2018-7-4 08:40:26 | 显示全部楼层
求助打包 batch训练组这块有没有专题教程啊
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

主题

帖子

18

积分
快速回复 返回顶部 返回列表