- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用我的自定义数据修改 Resnet50,如下所示:
X = [[1.85, 0.460,... -0.606] ... [0.229, 0.543,... 1.342]]
y = [2, 4, 0, ... 4, 2, 2]
X 是 784 张图像的长度为 2000 的特征向量。 y 是一个大小为 784 的数组,包含标签的二进制表示形式。
这是代码:
def __classifyRenet(self, X, y):
image_input = Input(shape=(2000,1))
num_classes = 5
model = ResNet50(weights='imagenet',include_top=False)
model.summary()
last_layer = model.output
# add a global spatial average pooling layer
x = GlobalAveragePooling2D()(last_layer)
# add fully-connected & dropout layers
x = Dense(512, activation='relu',name='fc-1')(x)
x = Dropout(0.5)(x)
x = Dense(256, activation='relu',name='fc-2')(x)
x = Dropout(0.5)(x)
# a softmax layer for 5 classes
out = Dense(num_classes, activation='softmax',name='output_layer')(x)
# this is the model we will train
custom_resnet_model2 = Model(inputs=model.input, outputs=out)
custom_resnet_model2.summary()
for layer in custom_resnet_model2.layers[:-6]:
layer.trainable = False
custom_resnet_model2.layers[-1].trainable
custom_resnet_model2.compile(loss='categorical_crossentropy',
optimizer='adam',metrics=['accuracy'])
clf = custom_resnet_model2.fit(X, y,
batch_size=32, epochs=32, verbose=1,
validation_data=(X, y))
return clf
我打电话的目的是:
clf = self.__classifyRenet(X_train, y_train)
出现错误:
ValueError: Error when checking input: expected input_24 to have 4 dimensions, but got array with shape (785, 2000)
请帮忙。谢谢!
最佳答案
1. First, understand the error.
您的输入与 ResNet 的输入不匹配,对于 ResNet,输入应该是 (n_sample, 224, 224, 3),但您输入的是 (785, 2000)。从你的问题来看,你有 784 张图像,数组大小为 2000,无论你如何 reshape 它,它都与原始 ResNet50 输入形状 (224 x 224) 不一致。这意味着您无法直接使用 ResNet50 处理您的数据。您在代码中所做的唯一一件事就是采用 ResNet50 的最后一层并添加输出层以与输出类大小保持一致。
2. Then, what you can do.
如果你坚持使用ResNet架构,你将需要改变输入层而不是输出层。此外,您还需要 reshape 图像数据以利用卷积层。这意味着,您不能将其放在 (2000,)
数组中,而需要类似于 (height, width, channel)
,就像 ResNet 和其他架构一样是做。当然,您还需要像您所做的那样更改输出层,以便您可以预测您的类。尝试这样的事情:
model = ResNet50(input_tensor=image_input_shape, include_top=True,weights='imagenet')
这样,您可以指定自定义输入图像形状。您可以查看 github 代码以获取更多信息( https://github.com/keras-team/keras/blob/master/keras/applications/resnet50.py )。这是文档字符串的一部分:
input_shape: optional shape tuple, only to be specified
if `include_top` is False (otherwise the input shape
has to be `(224, 224, 3)` (with `channels_last` data format)
or `(3, 224, 224)` (with `channels_first` data format).
It should have exactly 3 inputs channels,
and width and height should be no smaller than 197.
E.g. `(200, 200, 3)` would be one valid value.
关于python-3.x - 具有自定义数据的 Resnet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49197132/
**摘要:**本实验主要是以基于Caffe ResNet-50网络实现图片分类(仅推理)为例,学习如何在已经具备预训练模型的情况下,将该模型部署到昇腾AI处理器上进行推理。 本文分享自华为云社区《【C
您好,我正在尝试通过微调方法使用 Resnet 神经网络来训练癌症数据集 这是我以前微调它的方法。 image_input = Input(shape=(224, 224, 3)) model = R
我正在尝试使用预训练的 resnet 并使用三元组损失对其进行微调。我想出的以下代码是我在该主题上找到的教程的组合: import pathlib import tensorflow as tf im
我需要获得一些关于深度神经网络的知识。 对于“ResNet”非常深的神经网络,我们可以使用迁移学习来训练模型。 但是 Resnet 已经在 ImageNet 数据集上进行了训练。因此,它们的预训练权重
在我的理解中,全连接层(简称 fc)用于预测。 例如,VGG Net 使用了 2 个 fc 层,它们都是 4096 维。 softmax 的最后一层具有与 num:1000 类相同的维度。 但是对于r
我正在尝试构建一个图像生成器,它将: 获取原始图像 读入图像并将其大小调整为 resnet50 的 (224,224,3) 对其执行数据增强(旋转、翻转等) 为其创建 Resnet50 特征(使用 m
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我尝试使用 Keras ResNet 50 应用程序模型来解决此代码的问题: #Tensorflow and tf.keras import tensorflow as tf from tensorf
我按照这个文档https://arxiv.org/pdf/1512.03385.pdf实现了cifar 10的ResNet但我的准确度与文档中得到的准确度有明显差异我的 - 86%个人电脑女儿 - 9
我正在尝试使用 convolutional residual network neural network architecture (ResNet)。到目前为止,我已经使用 Keras 实现了用于时
常见的‘融合'操作 复杂神经网络模型的实现离不开"融合"操作。常见融合操作如下: (1)求和,求差 # 求和 layers.Add(inputs) # 求
发生此错误,而我的原始代码不包含“导入 resnet”。 似乎在导入 tensorflow 时发生了错误。 Traceback (most recent call last): File "ste
我正在尝试使用我的自定义数据修改 Resnet50,如下所示: X = [[1.85, 0.460,... -0.606] ... [0.229, 0.543,... 1.342]] y = [2,
我训练了 Resnet-50 分类网络来对我的对象进行分类,并使用以下代码来评估网络。 from tensorflow.keras.models import load_model import cv
我正在尝试使用我的自定义数据修改 Resnet50,如下所示: X = [[1.85, 0.460,... -0.606] ... [0.229, 0.543,... 1.342]] y = [2,
我正在尝试使用 Keras 的 resnet 实现来执行具有完全不同的图像集(黑白 16 位)的传输学习任务。那么 Keras 期望输入什么?具有 3 个 channel 和 -127-128 范围的
我想使用来自 Tensorflow 的预训练 ResNet 模型。我下载了 code (resnet_v1.py) 用于模型和 checkpoint (resnet_v1_50.ckpt) 文件 he
我正在尝试重新训练 inception-resnet-v2 的最后一层。这是我想出的: 获取最后一层的变量名 创建一个 train_op 以仅最小化这些变量 wrt 损失 恢复除最后一层之外的整个图,
我下载 Resnet18 模型来训练模型。 当我输入时 model 显示 ResNet( (conv1): Conv2d(3, 64, kernel_size=(7, 7), stride=(2,
我正在尝试在我自己的图像和标签上训练 Tensorflow 官方 resnet 模型 ( link )。 我创建了 imagenet_main.py 的副本( my_data_main.py ) 在那
我是一名优秀的程序员,十分优秀!