1.sparse_categorical_crossentropy

label数组中的数据全为0-9,表示十种分类。

model = tf.keras.Sequential()

model.add(tf.keras.layers.Flatten(input_shape=(28,28)))
model.add(tf.keras.layers.Dense(128, activation=‘relu’))
model.add(tf.keras.layers.Dense(10, activation=‘softmax’))
model.compile(optimizer=‘adam’,
loss = ‘sparse_categorical_crossentropy’,
metrics=[‘acc’])

2.categorical_crossentropy

当labe使用one-hot编码时,使用categorical_crossentropy。比如北京[1, 0, 0] 上海[0, 1, 0] 深圳[0, 0, 1]

model = tf.keras.Sequential()
model.add(tf.keras.layers.Flatten(input_shape=(28,28)))
model.add(tf.keras.layers.Dense(128, activation=‘relu’))
model.add(tf.keras.layers.Dense(10, activation=‘softmax’))
model.compile(optimizer=‘adam’,
loss = ‘categorical_crossentropy’,
metrics=[‘acc’])

3.from_logits

from_logits=False,output为经过softmax输出的概率值。 # from_logits=True,output为经过网络直接输出的 logits张量。

loss_object = tf.keras.losses.SparseCategoricalCrossentropy(
from_logits=False, reduction=‘none’)

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐