如何解决检查目标时出错:预期activation_5具有形状1,,但数组的形状为2,
我正在尝试运行二进制图像分类器。
我的火车CSV文件有4列:
id,type,Good,Unusual
abc,['Good'],1,0
我的代码如下:
path = ""
os.chdir(path)
train = pd.read_csv("binary_train.csv")
train_image = []
for i in tqdm(range(train.shape[0])):
img = image.load_img(train['id'][i],target_size=(400,400,3))
img = image.img_to_array(img)
img = img/255
train_image.append(img)
X = np.array(train_image)
#plt.imshow(X[2])
y = np.array(train.drop(['id','type'],axis=1))
#y.shape
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=42,test_size=0.1)
model = Sequential()
model.add(Conv2D(32,(3,3),input_shape=(400,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(32,2)))
model.add(Conv2D(64,2)))
model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy'])
model.fit(X_train,epochs=10,validation_data=(X_test,y_test),batch_size=32)
我遇到以下错误:
回溯(最近通话最近): 文件“”,第2行,在 文件“ C:\ Users \ yasir.pirkani \ PycharmProjects \ untitled \ venv1 \ lib \ site-packages \ keras \ engine \ training.py”,行1154,适合 batch_size =批量大小) _standardize_user_data中第621行的文件“ C:\ Users \ yasir.pirkani \ PycharmProjects \ untitled \ venv1 \ lib \ site-packages \ keras \ engine \ training.py” exception_prefix ='目标') 文件“ C:\ Users \ yasir.pirkani \ PycharmProjects \ untitled \ venv1 \ lib \ site-packages \ keras \ engine \ training_utils.py”,行145,在standardize_input_data中 str(数据形状)) ValueError:检查目标时出错:预期activation_5的形状为(1,),但数组的形状为(2,)
在解决这个问题上,我需要帮助。
解决方法
在进行二进制分类时,必须在最后一个密集层中进行更改。
model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(2))
model.add(Activation('sigmoid'))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。