loss&one-hot

来源:6-9 Keras generator读取数据

慕九州7272337

2022-08-16

下图分别为图1,图2,图3,请教老师如下问题:
1.为什么2-4节图1中的loss加了sparse才能有onet-hot编码的功能,
而6-9节图2中的class_mode参数没有加sparse变成sparse_categoraical这种,就用了categorical实现onet-hot编码的功能?
2.categoraical翻译过来不是’分类’的意思么,怎么在6-9节中作为calss_mode
的参数就变成one-hot编码的意思了?
3.您之前说过,图3的的loss:sparse_softmax_cross_entropy
这个函数其中包含了把标签y做了one-hot编码,但是y值其实没有变,那么图1中的loss = sparse_categorical_crossentropy,是不是跟图3中的loss:sparse_softmax_cross_entropy意思差不多,也是包含了把标签y做了one-hot编码,但是y值其实没有变。我理解的对么?
4.图1中的loss = sparse_categorical_crossentropy,跟图3中的loss:sparse_softmax_cross_entropy有什么区别和联系么?
图片描述
图片描述
图片描述

写回答

1回答

正十七

2022-08-22

  1. 这是两个函数啊,函数的使用要看它是怎么定义的,这个flow_from_directory函数的定义如下,你可以看看这个class_mode参数的解释。不同函数间参数的意义有时候不是严格一致的。一个库的使用要多看文档里参数的解释。https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator#flow_from_directory

  2. 如上,看文档。

  3. 你理解的对,我们可以创造另一个变量y_one_hot,然后用没有sparse的loss

  4. 本质上会用同一个,只不过图一中的这个是封装在tensorflow的model.compile函数中的。它会根据名字去判断使用哪个loss函数。

0
0

Google老师亲授 TensorFlow2.0 入门到进阶

Tensorflow2.0实战—以实战促理论的方式学习深度学习

1849 学习 · 896 问题

查看课程