Epoch 和 Batch

今天在看keras的文档的时候看到行代码:

model.fit(x_train, y_train, epochs=5, batch_size=32)

epochs和batch_size, 忽然有点迷糊,知道是两个很重要的hyper parameter, 具体指什么想不起来了,赶紧查了下,以备后用。

依然是几个重要的名词:

Batch size,Epoch

这两个参数是SGD中的超参,假定有一个training dataset, size = 10000

Epoch:

当整个training dataset 都向前通过(forward:Calculate)一次网络,然后再向后(backward: Back propagation)通过一次网络, 这叫一个Epoch。

一般training中会有不止一个Epoch,就是说training dataset会多次的通过网络,这是因为training dataset里样本数量有限,如果只有一个Epoch,也许并不能获取到满意的W(Weight),所以多次,但Epoch的值是不确定的,跟training dataset有关系。

Batch:

因为整个training dataset的数据量过大,如果一次让这么大的数据量通过网络然后才进行一次Weight的update,那太慢了。所以一般会把整个training dataset分成若干的batch: batch_size x iteration = training dataset.

所以batch的定义就是:一批用于training的样本,在这批样本通过网络以后Weight会进行一次更新。

猜你喜欢

转载自blog.csdn.net/pushme_pli/article/details/85094672