8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

ValueError:无法解释损失标识符:categorical_crossentropy

Vardana Bhanot 2月前

22 0

这不是我的问题,有人问过我这个问题,我已经解决了。还发现很多新手都遇到过这个问题或类似的问题。我的朋友正在使用

这不是我的问题,有人问过我这个问题,我已经解决了。还发现很多新手都遇到过这个问题或类似的问题。我的朋友正在 使用 卷积神经网络 情绪检测模型 。在定义模型时,她犯了一个非常小的错误,导致了这个错误。所以我把这个分享给大家,希望大家会觉得它有用。

我正在定义模型。这是代码

def model_fer(inputs):
       conv_1= convolution(inputs,32,(3,3))
       conv_2= convolution(conv_1,64,(5,5))
       conv_3= convolution(conv_2,128,(3,3))
        
       flatten = Flatten()(conv_3)
        
       dense_1 = dense_f(flatten,256)
        
       output = Dense(7, activation = 'softmax')(dense_1)
       model = Model(inputs = [inputs], outputs = [output])
        
       model.compile(loss= ['categorical_crossentrophy'], optimizer = 'adam', metrics= ['accuracy'])
        
       return model

但是当我尝试将模型拟合到训练数据上时,它显示了一个 ValueError 错误

无法识别损失标识符Categorical_crossentropy。

有时它还说:

损失函数:\'categorical_crossentrophy\'。请确保您使用的是“keras.utils.custom_object_scope”,并且该对象包含在范围内。

完整错误:

ValueError                                Traceback (most recent call last)
Cell In[11], line 1
----> 1 history = model.fit(
      2     x = train_generator,
      3     steps_per_epoch=steps_per_epoch,
      4     epochs=5,
      5     validation_data=validation_generator,
      6     validation_steps=validation_steps//2,
      7     callbacks=callbacks
      8 )

File c:\Users\mebub_9a7jdi8\Desktop\Emotion_Detection_Model\.env\Lib\site-packages\keras\src\utils\traceback_utils.py:122, in filter_traceback.<locals>.error_handler(*args, **kwargs)
    119     filtered_tb = _process_traceback_frames(e.__traceback__)
    120     # To get the full stack trace, call:
    121     # `keras.config.disable_traceback_filtering()`
--> 122     raise e.with_traceback(filtered_tb) from None
    123 finally:
    124     del filtered_tb

File c:\Users\mebub_9a7jdi8\Desktop\Emotion_Detection_Model\.env\Lib\site-packages\keras\src\losses\__init__.py:201, in get(identifier)
    199     return obj
    200 else:
--> 201     raise ValueError(f"Could not interpret loss identifier: {identifier}")

ValueError: Could not interpret loss identifier: categorical_crossentrophy
帖子版权声明 1、本帖标题:ValueError:无法解释损失标识符:categorical_crossentropy
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Vardana Bhanot在本站《tensorflow》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 问题出在 categorical_crossentropy ,它应该是 categorical_crossentropy 。错误是由于一个小的拼写错误而发生的。

    修正后的代码:

    def model_fer(inputs):
        conv_1 = convolution(inputs, 32, (3, 3))
        conv_2 = convolution(conv_1, 64, (5, 5))
        conv_3 = convolution(conv_2, 128, (3, 3))
        
        flatten = Flatten()(conv_3)
        
        dense_1 = dense_f(flatten, 256)
        
        output = Dense(7, activation='softmax')(dense_1)
        model = Model(inputs=[inputs], outputs=[output])
        
        model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
        
        return model
    

    这一改变解决了错误,模型现在可以毫无问题地编译和拟合训练数据。

返回
作者最近主题: