output_batch是输入给训练函数的label吗,它与model.fit函数中的label表示含义是一样的吗,为什么程序中要那么定义
来源:6-9 编写训练神经网络的方法(下)
慕丝4144012
2018-02-28
output_batch = [1] * BATCH_SIZE + [0] * BATCH_SIZE
#训练判别器, 让它具备识别不合格生成图片的能力
d_loss = d.train_on_batch(input_batch, output_batch)
写回答
1回答
-
好问题。其实你看 Keras 的 Sequential 的 文档 会发现:
fit 方法和 train_on_batch 方法有点类似,都可以用来训练模型。
它们的主要区别是:
fit 是一个可以方便地做多个 Epoch(纪元:所有的训练样本完成一次迭代
)训练的方法。而每个批次的样本则是用 train_on_batch 方法来训练的(train_on_batch 的名字也透露了它做的事:在一个 batch 上训练)一些概念:
# Batch size : 批次(样本)数目。一次迭代(Forword 运算(用于得到损失函数)以及 BackPropagation 运算(用于更新神经网络参数))所用的样本数目。Batch size 越大,所需的内存就越大 # Iteration : 迭代。每一次迭代更新一次权重(网络参数),每一次权重更新需要 Batch size 个数据进行 Forward 运算,再进行 BP 运算 # Epoch : 纪元/时代。所有的训练样本完成一次迭代 # 假如: 训练集有 1000 个样本,Batch_size=10 # 那么: 训练完整个样本集需要: 100 次 Iteration,1 个 Epoch
可以看到,代码里 output_batch 的大小是 BATCH_SIZE,也就是我们定义的一个批次(样本)数目。
output_batch (也就是 train_on_batch 方法里的 y)和 model.fit 方法 中的 y 都是表示 label(标签)。
012018-02-28
相似问题