【问题标题】:ValueError: setting an array element with a sequence coming in my CNNValueError:在我的 CNN 中设置一个带有序列的数组元素
【发布时间】:2020-06-26 01:07:42
【问题描述】:

我正在为自己的数据集构建一个用于人脸识别的 CNN 架构。 首先是我的代码:

classifier = keras.Sequential()
classifier.add(keras.layers.Convolution2D(16,kernel_size=(3,3),input_shape = (256,256,3),activation = swish,padding='same',kernel_regularizer=regularizers.l2))
classifier.add(keras.layers.Convolution2D(16,kernel_size=(3, 3),activation = swish,kernel_regularizer=regularizers.l2))
classifier.add(keras.layers.MaxPooling2D(pool_size = (2, 2),strides=2))
classifier.add(keras.layers.Dropout(0.2))
classifier.add(keras.layers.Convolution2D(32,kernel_size=(3, 3),activation = swish,kernel_regularizer=regularizers.l2))
classifier.add(keras.layers.Convolution2D(32,kernel_size=(3, 3),activation = swish,kernel_regularizer=regularizers.l2))
classifier.add(keras.layers.MaxPooling2D(pool_size = (2, 2),strides=2))
classifier.add(keras.layers.Dropout(0.3))
classifier.add(keras.layers.Convolution2D(64,kernel_size=(3, 3),activation = swish,kernel_regularizer=regularizers.l2))
classifier.add(keras.layers.Convolution2D(64,kernel_size=(3, 3),activation = swish,kernel_regularizer=regularizers.l2))
classifier.add(keras.layers.MaxPooling2D(pool_size = (2, 2),strides=2))
classifier.add(keras.layers.Dropout(0.4))
classifier.add(keras.layers.Flatten())
#classifier.add(keras.layers.Dropout(0.5))
classifier.add(keras.layers.Dense(128,activation = swish))
classifier.add(keras.layers.Dropout(0.5))
classifier.add(keras.layers.Dense( 4, activation = 'softmax'))
print(classifier.summary())
# Compiling the CNN
classifier.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])

错误来了:

classifier.add(keras.layers.Convolution2D(16,kernel_size=(3,3),input_shape = (256,256,3),activation = swish,padding='same',kernel_regularizer=regularizers.l2))

我使用以下代码运行该文件:

import keras
import matplotlib.pyplot as plt
from numpy import set_printoptions
from keras import callbacks,regularizers,Sequential
from keras.layers import Input, Lambda, Dense, Flatten,Dropout,Input,Conv2D, MaxPool2D,BatchNormalization
from keras.callbacks import EarlyStopping
set_printoptions(precision=4,suppress=True)

当我添加 L2 正则化器时开始出现错误,在此之前它工作正常。

`

【问题讨论】:

  • 这种方式你试过了吗kernel_regularizer=regularizers.l2(0.01)
  • 非常感谢,现在不会出现错误了。
  • 我会写到答案请采纳

标签: python machine-learning deep-learning computer-vision face-recognition


【解决方案1】:

这样试试:

classifier.add(keras.layers.Convolution2D(16,kernel_size=(3,3),input_shape = (256,256,3),activation = swish,padding='same', kernel_regularizer=regularizers.l2(0.01)))

【讨论】:

    猜你喜欢
    • 2013-03-12
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 2011-06-08
    • 2018-08-04
    • 2019-08-04
    相关资源
    最近更新 更多