tensorflow - ValueError:输入必须有3个通道;得到了`input_shape=(200, 200, 1)`
问题描述
我正在尝试将迁移学习与 VGG16 一起使用。我正在使用 Keras。但我得到了错误
vgg = vgg16.VGG16(include_top=False, weights='imagenet', input_shape=(IMG_SIZE, IMG_SIZE, 1))
任何帮助有什么问题吗?
注:IMG_SIZE
= 200
错误的痕迹是
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-5-1b17094c93e2> in <module>
3 import keras
4
----> 5 vgg = vgg16.VGG16(include_top=False, weights='imagenet', input_shape=(IMG_SIZE, IMG_SIZE, 1))
6
7 output = vgg.layers[-1].output
c:\users\hiteshsom\documents\deepanshu_q2\env\lib\site-packages\tensorflow\python\keras\applications\vgg16.py in VGG16(include_top, weights, input_tensor, input_shape, pooling, classes, classifier_activation)
124 ' as true, `classes` should be 1000')
125 # Determine proper input shape
--> 126 input_shape = imagenet_utils.obtain_input_shape(
127 input_shape,
128 default_size=224,
c:\users\hiteshsom\documents\deepanshu_q2\env\lib\site-packages\tensorflow\python\keras\applications\imagenet_utils.py in obtain_input_shape(input_shape, default_size, min_size, data_format, require_flatten, weights)
363 raise ValueError('`input_shape` must be a tuple of three integers.')
364 if input_shape[-1] != 3 and weights == 'imagenet':
--> 365 raise ValueError('The input must have 3 channels; got '
366 '`input_shape=' + str(input_shape) + '`')
367 if ((input_shape[0] is not None and input_shape[0] < min_size) or
ValueError: The input must have 3 channels; got `input_shape=(200, 200, 1)`
解决方案
您不能对单通道图像使用 imagenet 权重。这可能会解决您的问题:
vgg = vgg16.VGG16(include_top=False, weights=None, input_shape=(IMG_SIZE, IMG_SIZE, 1))
推荐阅读
- openam - OpenAM:MongoDB 或 SQL-DB 作为外部身份存储/存储库
- python - ttk.treeview selection_set 到具有特定 id 的项目
- python - 使用python将csv文件转换为txt文件时,不同行上的行之间的间距不同
- java - 使用 HTTPS TLS 1.2 配置 JBoss EAP 7
- python - 在 python 中实现构建器模式
- python - 将 BaseSensorOperator 中的模板字段用于 SFTPSensor
- ruby-on-rails - 在 Rails 6.1 中更改 has_secure_token 最小长度
- php - 在 Laravel 上访问外键
- javascript - 如何确保 axios 请求使用的是来自 redux 商店的最新令牌?
- database - MVIEW 快速刷新总是在递增之前从主表执行选择计数(*)