使用alexnet和目录流来训练灰度数据集

哈里斯·法拉比

这是我的参考:来自目录示例 alexnet体系结构的

我尝试使用alexnet架构训练3个类别。数据集是灰度图像。我将第一个链接修改为分类类模式,然后将CNN模型修改为第二个链接的alexnet。我收到2条错误消息:

  1. ValueError:负尺寸大小是由于输入形状为[?,1,1,384],[3,3,384,384]的'conv2d_83 / convolution'(op:'Conv2D')的值从1中减去3引起的。

  2. 如果更改img_width,则img_height = 224,224 TypeError:Dense只能接受1个位置参数(“单位”,),但是您传递了以下位置参数:[4096,(224,224,1)]

CNN中的尺寸是否无法比拟?谢谢

这是代码:

import json
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D
from keras.layers import Activation, Dropout, Flatten, Dense
from keras import backend as K
#from tensorflow.keras.optimizers import RMSprop


# dimensions of our images.
img_width, img_height = 150,150

train_data_dir = 'data/train'
validation_data_dir = 'data/validation'
nb_train_samples = 200*3
nb_validation_samples = 50*3
epochs = 1
batch_size = 5

if K.image_data_format() == 'channels_first':
    input_shape = (1, img_width, img_height)
else:
    input_shape = (img_width, img_height, 1)
print(input_shape)
model = Sequential()
model.add(Conv2D(filters=96, input_shape=input_shape,data_format='channels_last', kernel_size=(11,11), strides=(4,4), padding='valid'))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='valid'))

model.add(Conv2D(filters=256, kernel_size=(11,11), strides=(1,1), padding='valid'))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='valid'))

model.add(Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), padding='valid'))
model.add(Activation('relu'))
#model.add(MaxPooling2D(pool_size=(2, 2)))

# 4th Convolutional Layer
model.add(Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), padding='valid'))
model.add(Activation('relu'))

# 5th Convolutional Layer
model.add(Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), padding='valid'))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='valid'))

model.add(Flatten())
model.add(Dense(4096, input_shape))
model.add(Activation('relu'))
model.add(Dropout(0.4))

model.add(Dense(4096))
model.add(Activation('relu'))
model.add(Dropout(0.4))

model.add(Dense(1000))
model.add(Activation('relu'))
model.add(Dropout(0.4))

# Output Layer
model.add(Dense(3))
model.add(Activation('softmax'))

model.summary()

# Compile the model
model.compile(loss=keras.losses.categorical_crossentropy, optimizer='adam', metrics=['accuracy'])

#model.compile(loss='categorical_crossentropy',optimizer=RMSprop(lr=0.001),metrics=['accuracy'])

# this is the augmentation configuration we will use for training
train_datagen = ImageDataGenerator(
    rescale=1. / 255,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True)

# this is the augmentation configuration we will use for testing:
# only rescaling
test_datagen = ImageDataGenerator(rescale=1. / 255)

train_generator = train_datagen.flow_from_directory(
    train_data_dir,
    target_size=(img_width, img_height),
    color_mode='grayscale',
    batch_size=batch_size,
    class_mode='categorical')

validation_generator = test_datagen.flow_from_directory(
    validation_data_dir,
    target_size=(img_width, img_height),
    color_mode='grayscale',
    batch_size=batch_size,
    class_mode='categorical')

model.fit_generator(
    train_generator,
    steps_per_epoch=nb_train_samples // batch_size,
    epochs=epochs,
    validation_data=validation_generator,
    validation_steps=nb_validation_samples // batch_size)

model_json = model.to_json()
with open("model_in_json.json", "w") as json_file:
    json.dump(model_json, json_file)

model.save_weights("model_weights.h5")
卢卡斯(Lukasz Tracewski)
  1. AlexNet适用于input_size227x227。本文提到224x224,但这是一个错字。并不是说您不能使用其他大小,但是架构将变得没有意义。当输入大小太小(即您的情况)时,出现更多的发音问题。步幅= 2的卷积和最大池化操作降低了后续层的维数。您只用完了尺寸,用表示ValueError: Negative dimension size caused by subtracting 3 from 1 for 'conv2d_83/convolution'上采样输入图像或更改体系结构。

  2. 错误源于model.add(Dense(4096, input_shape))如果检查keras文档Dense层,您会注意到第二个参数是activation如果有的话,您应该使用model.add(Dense(4096, input_shape=your_input_shape))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用runif将数据集分为训练和测试集

来自分类Dev

使用张量流将数据集分为训练和测试

来自分类Dev

使用Galaxy Zoo数据集,TensorFlow和Keras训练GAN

来自分类Dev

来自ImageNet 2012数据集的Pytorch模型的经过预训练的Alexnet的验证分数低

来自分类Dev

如何在TensorFlow中使用我自己的数据将图像分为测试集和训练集

来自分类Dev

使用ggmap,geom_point和循环映射长纬度数据集的最近邻居

来自分类Dev

使用R将数据按准则随机分为训练和测试数据集

来自分类Dev

使用训练好的权重训练不同的数据集

来自分类Dev

使用SVM训练我的数据集

来自分类Dev

scikit-learn:如何使用两个不同的数据集作为训练集和测试集

来自分类Dev

在Postgres中将数据集分为训练和测试集

来自分类Dev

Pyspark - 从数据帧创建训练集和测试集

来自分类Dev

使用PyTorch将Traininng数据集分为CIFAR10的训练和验证集后,如何增加数据?

来自分类Dev

在测试和训练数据集上使用朴素贝叶斯功能

来自分类Dev

使用PyTorch和TorchVision对自定义数据集进行训练有效测试拆分

来自分类Dev

准备训练数据集

来自分类Dev

如何使用熊猫绘制年度数据集?

来自分类Dev

不平衡训练数据集和回归模型

来自分类Dev

如何从数据集上的RandomForestClassifer创建,训练和打印结果

来自分类Dev

在Julia中将数据集拆分为训练和测试

来自分类Dev

按月将数据集拆分为训练和测试

来自分类Dev

如何简单地使用Amelia在R中估算NA值,然后将数据集分为70:30的数据集和训练集?

来自分类Dev

预处理图像数据集,包括划分为训练集和测试集

来自分类Dev

在R中使用.mids对象创建训练数据集

来自分类Dev

如何使用Tensorflow数据集进行CNN模型训练

来自分类Dev

如何使用Tensorflow数据集进行CNN模型训练

来自分类Dev

对每个训练数据集使用多次 keras 模型拟合

来自分类Dev

如何使用StandardScaler正确缩放训练,验证和测试集?

来自分类Dev

mnist数据集Lenet训练

Related 相关文章

  1. 1

    使用runif将数据集分为训练和测试集

  2. 2

    使用张量流将数据集分为训练和测试

  3. 3

    使用Galaxy Zoo数据集,TensorFlow和Keras训练GAN

  4. 4

    来自ImageNet 2012数据集的Pytorch模型的经过预训练的Alexnet的验证分数低

  5. 5

    如何在TensorFlow中使用我自己的数据将图像分为测试集和训练集

  6. 6

    使用ggmap,geom_point和循环映射长纬度数据集的最近邻居

  7. 7

    使用R将数据按准则随机分为训练和测试数据集

  8. 8

    使用训练好的权重训练不同的数据集

  9. 9

    使用SVM训练我的数据集

  10. 10

    scikit-learn:如何使用两个不同的数据集作为训练集和测试集

  11. 11

    在Postgres中将数据集分为训练和测试集

  12. 12

    Pyspark - 从数据帧创建训练集和测试集

  13. 13

    使用PyTorch将Traininng数据集分为CIFAR10的训练和验证集后,如何增加数据?

  14. 14

    在测试和训练数据集上使用朴素贝叶斯功能

  15. 15

    使用PyTorch和TorchVision对自定义数据集进行训练有效测试拆分

  16. 16

    准备训练数据集

  17. 17

    如何使用熊猫绘制年度数据集?

  18. 18

    不平衡训练数据集和回归模型

  19. 19

    如何从数据集上的RandomForestClassifer创建,训练和打印结果

  20. 20

    在Julia中将数据集拆分为训练和测试

  21. 21

    按月将数据集拆分为训练和测试

  22. 22

    如何简单地使用Amelia在R中估算NA值,然后将数据集分为70:30的数据集和训练集?

  23. 23

    预处理图像数据集,包括划分为训练集和测试集

  24. 24

    在R中使用.mids对象创建训练数据集

  25. 25

    如何使用Tensorflow数据集进行CNN模型训练

  26. 26

    如何使用Tensorflow数据集进行CNN模型训练

  27. 27

    对每个训练数据集使用多次 keras 模型拟合

  28. 28

    如何使用StandardScaler正确缩放训练,验证和测试集?

  29. 29

    mnist数据集Lenet训练

热门标签

归档