【问题标题】:AlexNet architecture for black and white image identification用于黑白图像识别的 AlexNet 架构
【发布时间】:2020-06-23 12:45:24
【问题描述】:

我想尝试用黑白图像在 AlexNet CNN 上进行实验,我在 AlexNet 实验中所知道的是使用具有 3 个颜色通道的 RGB 图像,而我要做的实验只有 1 个颜色通道。在为黑白图像设计 AlexNet 架构时,我仍然感到困惑。 下面是来自 AlexNet 的架构示例。

问题是,我能否让架构看起来像示例图像,但使用黑白图像而不是 RGB 图像?

【问题讨论】:

    标签: python tensorflow machine-learning keras deep-learning


    【解决方案1】:

    您只需更改输入尺寸。黑白图像只有一个通道而不是 3 个。这里是完全适应的模型

    image_dim = (224,224,1) # black and white images
    n_classes = 10
    
    model = Sequential()
    
    # 1st Convolutional Layer
    model.add(Conv2D(filters=96, input_shape=image_dim, kernel_size=(11,11), strides=(4,4), padding="valid"))
    model.add(Activation("relu"))
    # Max Pooling
    model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding="valid"))
    
    # 2nd Convolutional Layer
    model.add(Conv2D(filters=256, kernel_size=(11,11), strides=(1,1), padding="valid"))
    model.add(Activation("relu"))
    # Max Pooling
    model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding="valid"))
    
    # 3rd Convolutional Layer
    model.add(Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), padding="valid"))
    model.add(Activation("relu"))
    
    # 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"))
    # Max Pooling
    model.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding="valid"))
    
    # Passing it to a Fully Connected layer
    model.add(Flatten())
    # 1st Fully Connected Layer
    model.add(Dense(4096))
    model.add(Activation("relu"))
    # Add Dropout to prevent overfitting
    model.add(Dropout(0.4))
    
    # 2nd Fully Connected Layer
    model.add(Dense(4096))
    model.add(Activation("relu"))
    # Add Dropout
    model.add(Dropout(0.4))
    
    # 3rd Fully Connected Layer
    model.add(Dense(1000))
    model.add(Activation("relu"))
    # Add Dropout
    model.add(Dropout(0.4))
    
    # Output Layer
    model.add(Dense(n_classes))
    model.add(Activation("softmax"))
    
    # Compile the model
    model.compile(loss="categorical_crossentropy", optimizer="adam", metrics="accuracy")
    
    model.summary()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 1970-01-01
      • 2020-01-22
      • 2018-07-11
      • 2016-08-10
      • 2012-05-15
      相关资源
      最近更新 更多