使用 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 的图像生成器的主要内容,如果未能解决你的问题,请参考以下文章

深度学习之图像分类ResNet50学习

图像分类手撕ResNet——复现ResNet(Pytorch)

Pytorch CIFAR10图像分类 ResNet篇

当使用 OpenCV 完成图像加载和调整大小时,Resnet50 会产生不同的预测

ResNet实战:tensorflow2.X版本,ResNet50图像分类任务(大数据集)

图像分类手撕ResNet——复现ResNet(Keras,Tensorflow 2.x)