Batch Normalization

Batch Normalization

在 training 和 testing 的时候,BatchNormalization (BN) 层的表现将有所不同。在 training 时,BN将根据指定的 axis 对当前 batch 的数据进行归一化即 x = (x - mean) / tf.sqrt(var + epsilon) 其中 mean, var = tf.nn.moments( x, axes, keepdims=False)。但是在 testing 的时候这个 mean 和 var 将不是来自 testing 用的数据,而是来自 BN层训练完成后得到的整个数据集的 mean 和 var 即 pop_mean 和 pop_var,通过tf.assign(pop_mean, pop_mean * decay + batch_mean * (1 - decay)) 和 tf.assign(pop_var, pop_var * decay + batch_var * (1 - decay))计算得到,这里decay一般接近1。
调用 train_on_batch 得到的loss是网络未经过梯度更新的loss,网络将根据这个loss来梯度更新参数。

binary_crossentropy

计算公式为 − P t u r e l o g ( P p r e d ) − ( 1 − P t r u e ) l o g ( 1 − P p r e d ) -P_{ture}log(P_{pred})-(1-P_{true})log(1-P_{pred}) Pturelog(Ppred)(1Ptrue)log(1Ppred)(这里的P是指属于其中一种类别的概率,总共为两种类别,概率和为1)。例如真标签为[1,0], 预测标签为[0.9, 0.1],则 l o s s = − 1 ∗ l o g ( 0.9 ) − ( 1 − 1 ) ∗ l o g ( 1 − 0.9 ) = − l o g 0.9 loss = -1*log(0.9)-(1-1)*log(1-0.9) = -log0.9 loss=1log(0.9)(11)log(10.9)=log0.9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值