使用 Resnet 的图像生成器
Posted
技术标签:
【中文标题】使用 Resnet 的图像生成器【英文标题】:ImageGenerator using Resnet 【发布时间】:2019-12-22 18:10:41 【问题描述】:我正在尝试构建一个图像生成器,它将:
-
获取原始图像
读入图像并将其调整为 (224,224,3) 用于 resnet50
对其执行数据增强(旋转、翻转等)
为其创建 Resnet50 功能(使用 model.predict)
然后通过yield方法在图像生成器中输出这个
我无法弄清楚如何实际做到这一点。我将此作为三重损失,因此一个图像是锚、正图像和负图像。
上面写着:
TypeError: len() of unsized object
更新
我稍微更改了代码,但现在它给了我这个错误。
Error when checking input: expected input_1 to have 4 dimensions, but got array with shape (224, 224, 3)
【问题讨论】:
【参考方案1】:请记住,网络需要批量大小。如果您只提交一张形状 (244,244,3) 的图像,您需要先np.expand_dims(image, axis=0)
才能在预测之前获得形状 (1,244,244,3)。这将是 1 张 244 x 244 的 3 层图像,即 (1,244,244,3)。
您似乎还有一些其他维度,但重点仍然存在,在其中获取批量大小维度;这就是你最近的错误所说的。
【讨论】:
我修复了上述错误,但现在它给了我一些奇怪的东西。请看我的更新以上是关于使用 Resnet 的图像生成器的主要内容,如果未能解决你的问题,请参考以下文章
图像分类手撕ResNet——复现ResNet(Pytorch)
当使用 OpenCV 完成图像加载和调整大小时,Resnet50 会产生不同的预测