use*_*121 6 machine-learning deep-learning keras
我在 Keras 中训练模型如下:
model.fit(Xtrn, ytrn batch_size=16, epochs=50, verbose=1, shuffle=True,
callbacks=[model_checkpoint], validation_data=(Xval, yval))
Run Code Online (Sandbox Code Playgroud)
拟合输出如下所示:
如图所示,model.fit
我的批量大小为 16,8000
训练样本总数如输出所示。因此,根据我的理解,每16
批次都会进行培训。这也意味着训练是500
单个时期的运行时间(即,8000/16 =500)
因此,让我们采用 Epoch 1/50 输出中打印的训练准确度,在本例中为0.9381
。我想知道这个训练精度是如何0.9381
导出的。
是不是:
500
次培训,每批执行?或者,
500
吗?看看他们计算运行平均值的BaseLogger
地方。Keras
对于每个时期,准确度是该时期之前看到的所有批次的平均值。
class BaseLogger(Callback):
"""Callback that accumulates epoch averages of metrics.
This callback is automatically applied to every Keras model.
"""
def on_epoch_begin(self, epoch, logs=None):
self.seen = 0
self.totals = {}
def on_batch_end(self, batch, logs=None):
logs = logs or {}
batch_size = logs.get('size', 0)
self.seen += batch_size
for k, v in logs.items():
if k in self.totals:
self.totals[k] += v * batch_size
else:
self.totals[k] = v * batch_size
def on_epoch_end(self, epoch, logs=None):
if logs is not None:
for k in self.params['metrics']:
if k in self.totals:
# Make value available to next callbacks.
logs[k] = self.totals[k] / self.seen
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2283 次 |
最近记录: |