2018-12-24 epoch、training step;n
2018-12-24 本文已影响28人
七月那个阿瓜呀
1. epoch、training step等
转至深度学习中 number of training epochs 中的 epoch到底指什么?
①一次
epoch
=所有训练数据forward+backward后更新参数的过程。1个epoch表示过了1遍训练集中的所有样本。
epoch:中文翻译为时期。一个时期 = 所有训练样本的一个正向传递和一个反向传递。
②一次training step
(又称iteration或迭代)=[batch size]个训练数据forward+backward后更新参数过程。每次迭代更新1次网络结构的参数
③batch-size
指1次迭代所使用的样本量
值得注意的是,在深度学习领域中,常用带mini-batch的随机梯度下降算法(Stochastic Gradient Descent, SGD)训练深层结构,它有一个好处就是并不需要遍历全部的样本,当数据量非常大时十分有效。此时,可根据实际问题来定义epoch,例如定义10000次迭代为1个epoch,若每次迭代的batch-size设为256,那么1个epoch相当于过了2560000个训练样本。
举个例子
训练集有1000个样本,batchsize=10,训练完整个样本集需要: 100次training step,1次epoch。具体的计算公式为:
one epoch = numbers of iterations = N = 训练样本的数量/batch_size
batch_size=10这10个数据组成的数据集叫batch
每跑完一个batch都要更新参数,这个过程叫一个training step
epoch指的就是跑完这100个batch(100个training step)的这个过程
2. npy npz文件的读取
import numpy as np
test=np.load('E:/PyCharm/Agua_Code/···/dataset1_appended_v1.npz',encoding = "latin1") #加载文件
doc = open('Dataset1.txt', 'a') #打开一个存储文件,并依次写入
print(test.keys()) #将打印内容写入文件中
print(test['requests_v1'])
参考CSDN
>>> arch=np.load('C:\Users\Administrator\Desktop\\array_archive.npz')
>>> arch
<numpy.lib.npyio.NpzFile object at 0x0000000003AF3470>
>>> arch.keys()
['a', 'b']
>>> arch['b']
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])