类型错误:categorical_crossentropy() 缺少 2 个必需的位置参数:“y_true”和“y_pred”

Imd*_*que 3 python keras cnn

导入库和模型,

from __future__ import print_function
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
import keras.backend as k

batch_size = 128
num_classes = 10
epochs = 12
Run Code Online (Sandbox Code Playgroud)

在书面代码下方,

#Loss and Optimizer
optimizer = keras.optimizers.Adam()
loss = keras.losses.categorical_crossentropy()
Run Code Online (Sandbox Code Playgroud)

在类型错误下面,我遇到了严重的问题,我无法解决,

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-f3fea941b382> in <module>()
      1 #Loss and Optimizer
      2 optimizer = keras.optimizers.Adam()
----> 3 loss = keras.losses.categorical_crossentropy()

/usr/local/lib/python3.6/dist-packages/tensorflow/python/util/dispatch.py in wrapper(*args, **kwargs)
    199     """Call target, and fall back on dispatchers if there is a TypeError."""
    200     try:
--> 201       return target(*args, **kwargs)
    202     except (TypeError, ValueError):
    203       # Note: convert_to_eager_tensor currently raises a ValueError, not a

TypeError: categorical_crossentropy() missing 2 required positional arguments: 'y_true' and 'y_pred'
Run Code Online (Sandbox Code Playgroud)

需要帮助来解决这个问题,请帮助我。先进谢谢。

Ani*_*ote 6

这是获取 Categorical Crossentropy 类对象的正确实现。

loss = keras.losses.CategoricalCrossentropy()
Run Code Online (Sandbox Code Playgroud)

keras.losses.categorical_crossentropy 这是一个需要 2 个参数的函数。