首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标识和标签必须可广播: logits_size=[400,3] labels_size=[16,3]

标识和标签必须可广播: logits_size=[400,3] labels_size=[16,3]
EN

Stack Overflow用户
提问于 2021-12-22 11:56:56
回答 1查看 552关注 0票数 0

我正试图建立一个预测面部表情的模型。我使用的模型:链接

我调整了数据,使它有三个文件夹:培训,测试,验证。每个文件夹包含三个子文件夹,名为:失望、感兴趣、中立。

我就是这样运行代码的。

代码语言:javascript
复制
image_gen=ImageDataGenerator(rotation_range=30,
                        width_shift_range=0.1,
                        height_shift_range=0.1,
                        rescale=1/255,
                        shear_range=0.2,
                        zoom_range=0.2,
                        horizontal_flip=True,
                        fill_mode='nearest')

train_image_gen=image_gen.flow_from_directory(train_dir,
                                          batch_size=batch_size,
                                          class_mode='categorical') #implemented the same code for test and validation dirs.

这就是模型本身:

代码语言:javascript
复制
model.add(Conv2D(32, kernel_size=(3, 3), input_shape=input_shape))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
 
model.add(Conv2D(64, kernel_size = (3, 3), input_shape=input_shape))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
 
model.add(Conv2D(64, kernel_size = (3, 3), input_shape=input_shape))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
 
model.add(Flatten())

model.add(Dense(128))
model.add(Activation('relu'))
model.add(Dropout(0.5))

model.add(Dense(3, activation="softmax"))

model.compile(loss='categorical_crossentropy',
             optimizer=keras.optimizers.Adam(lr=0.001),
             metrics=['accuracy'])

model.fit(train_image_gen,epochs=1,steps_per_epoch= nb_train_samples/16,
                          validation_data=valid_image_gen,validation_steps=nb_valid_samples//16)

当我运行model.fit时,它会给出以下错误

代码语言:javascript
复制
InvalidArgumentError:  logits and labels must be broadcastable: logits_size=[400,3] labels_size=[16,3]
     [[node categorical_crossentropy/softmax_cross_entropy_with_logits
 (defined at /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/keras/backend.py:5009)
]] [Op:__inference_train_function_7946]

Errors may have originated from an input operation.
Input Source operations connected to node categorical_crossentropy/softmax_cross_entropy_with_logits:
In[0] categorical_crossentropy/softmax_cross_entropy_with_logits/Reshape:   
In[1] categorical_crossentropy/softmax_cross_entropy_with_logits/Reshape_1:

Operation defined at: (most recent call last)
>>>   File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py", line 193, in _run_module_as_main
>>>     return _run_code(code, main_globals, None,
>>> 
>>>   File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py", line 86, in _run_code
>>>     exec(code, run_globals)
>>> 
>>>   File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ipykernel_launcher.py", line 16, in <module>
>>>     app.launch_new_instance()
>>> 
>>>   File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/traitlets/config/application.py", line 846, in launch_instance
>>>     app.start()
>>> 
>>>   File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ipykernel/kernelapp.py", line 677, in start
>>>     self.io_loop.start()

我尝试了许多不同的方法和代码,但我一直有相同的错误。

EN

回答 1

Stack Overflow用户

发布于 2021-12-22 14:55:07

要获得有关错误的更多信息,可以在热切模式下运行:

代码语言:javascript
复制
model.compile(loss='categorical_crossentropy',
             optimizer=keras.optimizers.Adam(lr=0.001),
             metrics=['accuracy'], run_eagerly=True)

实际上,输入形状有一个错误,实际上应该是256, 256, 3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70448690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档