epoches:神經網絡的訓練次數
在神經網絡訓練時,如果資料集足夠小,可将資料一次性全部喂給神經網絡,如下:
for epoch in range(epoches):
training(dataset)
但我們常常面臨的是比較大的資料集,一次性喂給神經網絡時,往往會出現記憶體/顯存不足的現象。
此時,我們會把比較大的資料集,分批次喂給神經網絡。
batch_size:表示一次性喂給神經網絡多少資料。
batches:該值等于dataset除以batch_size。總的資料集是dataset,我們每次喂給神經網絡batch_size個資料,一共要喂dataset/batch_size次,才可以把資料集全部處理一遍。
steps:該值等于batches。steps表示在一個epoch内,要疊代多少次才可以把所有的資料都訓練一遍;顯然,疊代次數等于dataset/batch_size。
分批次訓練的僞代碼如下:
for epoch in range(epoches):
for batch in range(batches): # 等同于 for step in range(steps)
training(datasets/batches)