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])
上一篇下一篇

猜你喜欢

热点阅读