Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neural network 在优化过程中,交叉熵损失如何转化为标量?_Neural Network_Keras_Keras Layer_Loss Function_Cross Entropy - Fatal编程技术网

Neural network 在优化过程中,交叉熵损失如何转化为标量?

Neural network 在优化过程中,交叉熵损失如何转化为标量?,neural-network,keras,keras-layer,loss-function,cross-entropy,Neural Network,Keras,Keras Layer,Loss Function,Cross Entropy,关于神经网络是如何定义的,我有一个基本的初学者问题,我正在Keras库中学习。根据MNIST hello world计划,我定义了这个网络: model = Sequential() model.add(Dense(NB_CLASSES, input_shape=(RESHAPED,), activation='softmax')) 我的理解是,这将创建一个具有两层的神经网络,在这种情况下,重塑的为784,nbu类为10,因此该网络将有一个输入层785个神经元和一个输出层10个神经元 然后我补

关于神经网络是如何定义的,我有一个基本的初学者问题,我正在Keras库中学习。根据MNIST hello world计划,我定义了这个网络:

model = Sequential()
model.add(Dense(NB_CLASSES, input_shape=(RESHAPED,), activation='softmax'))
我的理解是,这将创建一个具有两层的神经网络,在这种情况下,
重塑的
为784,
nbu类
为10,因此该网络将有一个输入层785个神经元和一个输出层10个神经元

然后我补充说:

model.compile(loss='categorical_crossentropy', optimizer=OPTIMIZER, metrics=['accuracy'])

我知道我已经读过分类交叉熵的公式,但它似乎是按每个输出节点计算的。我的问题是,在训练过程中,如何将交叉熵的值结合起来创建一个标量值目标函数?它只是一个平均值吗?

Keras计算每个实例损失值的平均值,可能加权(如果您感兴趣,请参阅
sample\u weight\u mode
参数)

以下是对源代码的引用:。如您所见,结果值经过
K.mean(…)
,这确保了结果是标量


但是,一般来说,可以通过不同的方式减少损失,例如,只减少一笔损失,但通常情况下损失更大,因此平均值更可取(请参见)。

感谢Maxim,这非常有意义!对于链接,非常有用。