【NLP_模型参数浅析】Batchsize

问题及解决

问题:明明已经设置“batch_size = 16”,训练数据量在300-400条,

但在运行代码,实际训练时,仍全批量训练,未分批次:

 Epoch 1/500

 1/1 ……

解决检查所用数据,是否按照代码中定义的那样( for c in l.split('\n'): #######################查找换行符),以换行符分隔每条数据。


def load_data(filename): #加载标注数据:训练集、测试集与验证集
    D = [] 
    with open(filename, encoding='utf-8') as f: #打开并读取文件内容
        f = f.read() #读取文件全部内容
        for l in f.split('\n\n'): #查找双换行符
            if not l: #若无双换行符
                continue #跳出本次循环,可执行下一次 (而break是跳出整个循环)

            d, last_flag = [], ''
            for c in l.split('\n'): #######################查找换行符
                char, this_flag = c.split(' ') 
                if this_flag == 'O' and last_flag == 'O': 
                    d[-1][0] += char #d[-1][0]=d[-1][0]+char
                elif this_flag == 'O' and last_flag != 'O':
                    d.append([char, 'O'])
                elif this_flag[:1] == 'B': 
                    d.append([char, this_flag[2:]])
                else:
                    d[-1][0] += char 
                last_flag = this_flag
            D.append(d)
    return D

所用数据是用换行符+空格分隔数据,将空格去除即可。

每条数据之间的分隔

浅析Batchsize

Batchsize设置为1,即随机梯度下降(stochastic Gradient Descent,SGD)。

Batchsize设置为训练数据量,即全批量训练。

一般将Batchsize设置为16,32,64……至于Batchsize设置大值/小值更好,众说纷纭。

 

 

 

 

 

 

 

 

 

 

相关文章

python方向·数据分析   ·自然语言处理nlp   案例:中...
原文地址http://blog.sina.com.cn/s/blog_574a437f01019poo....
ptb数据集是语言模型学习中应用最广泛的数据集,常用该数据集...
 Newtonsoft.JsonNewtonsoft.Json是.Net平台操作Json的工具...
NLP(NaturalLanguageProcessing)自然语言处理是人工智能的一...
做一个中文文本分类任务,首先要做的是文本的预处理,对文本...