1 需要设置batch,因为梯度是按照batch来更新的,如果没有batch,可能会导致单个训练更新梯度过大,学习效果不好
TODO:
2 震荡问题,准确率在50左右震荡,学习止步不前
a. 无法合并到一个batch中,sequence lenghtb不够长
- [x] padding : 缺点❌:sequence lentgh差距过大 (54 words VS 888 words)padding导致稀疏矩阵
- [ ] padding with masks: padding 到最大长度 ex 888x300,随后把补齐的过程用mask屏蔽掉-
- TORCH.NN.UTILS.RNN.PACK_PADDED_SEQUENCE()
- torch.nn.rnn.pack_padded_sequence()
a)分类问题的number/size of output应该等于number of classes,例如数据集3个类ABC,那么输出的结果应该为1x3的vector,每个值代表对应三个类的概率。
b) 训练效果随着epoch增大而降低,开始100以内的epoch还可以实现 > 70% 准确率,epoch达到500-600左右出现大量<40% 的准确率:

随机梯度下降法(是目前使用的方法,每执行一个数据就计算一次梯度、更新一次梯度,训练速度较快,但是永远不会收敛,在目标点(最优点附近晃来晃去)

估算chunk来划分test size问题 def datarow_count(self): with open(self.args.dataset_path + self.args.dataset_name + '/WELFake_Dataset.csv') as fileobject: self._total_length = sum(1 for row in fileobject) logging.info(f"\n ** DataFile have {self._total_length} rows of data! \n") # calculate the total chunk number self._chunk_number = self._total_length // self.args.chunk_size # this is estimate, because later iterator will delete some row in every chunk
arg max 需要额外存储每个epoch的模型
针对问题:自动调参
针对问题:arg max 需要额外存储每个epoch的模型
日志函数改为装饰函数:减少代码复杂度s def log_dec(func): @warp(func) def record_log_call(): logging.info(“…”) return func
@log_dec def main_function(): # do something
定义abstract 超类,把所有多利用变量放在超类中,子类使用super()init,避免重复声明
tokenized chunk保存在self中,把network设置为data handler的子类。

问题:内存占用过高,思路:
解决:考试使用自定义yield迭代器?
handler_init()无限循环调用问题
Draft更新新设计模式
需要找出model对应子类(实例类)的共有属性和方法
v1900
fix some bugs 
52 commits
Python
100.0%
1 需要设置batch,因为梯度是按照batch来更新的,如果没有batch,可能会导致单个训练更新梯度过大,学习效果不好
TODO:
2 震荡问题,准确率在50左右震荡,学习止步不前
a. 无法合并到一个batch中,sequence lenghtb不够长
- [x] padding : 缺点❌:sequence lentgh差距过大 (54 words VS 888 words)padding导致稀疏矩阵
- [ ] padding with masks: padding 到最大长度 ex 888x300,随后把补齐的过程用mask屏蔽掉-
- TORCH.NN.UTILS.RNN.PACK_PADDED_SEQUENCE()
- torch.nn.rnn.pack_padded_sequence()
a)分类问题的number/size of output应该等于number of classes,例如数据集3个类ABC,那么输出的结果应该为1x3的vector,每个值代表对应三个类的概率。
b) 训练效果随着epoch增大而降低,开始100以内的epoch还可以实现 > 70% 准确率,epoch达到500-600左右出现大量<40% 的准确率:

随机梯度下降法(是目前使用的方法,每执行一个数据就计算一次梯度、更新一次梯度,训练速度较快,但是永远不会收敛,在目标点(最优点附近晃来晃去)

估算chunk来划分test size问题 def datarow_count(self): with open(self.args.dataset_path + self.args.dataset_name + '/WELFake_Dataset.csv') as fileobject: self._total_length = sum(1 for row in fileobject) logging.info(f"\n ** DataFile have {self._total_length} rows of data! \n") # calculate the total chunk number self._chunk_number = self._total_length // self.args.chunk_size # this is estimate, because later iterator will delete some row in every chunk
arg max 需要额外存储每个epoch的模型
针对问题:自动调参
针对问题:arg max 需要额外存储每个epoch的模型
日志函数改为装饰函数:减少代码复杂度s def log_dec(func): @warp(func) def record_log_call(): logging.info(“…”) return func
@log_dec def main_function(): # do something
定义abstract 超类,把所有多利用变量放在超类中,子类使用super()init,避免重复声明
tokenized chunk保存在self中,把network设置为data handler的子类。

问题:内存占用过高,思路:
解决:考试使用自定义yield迭代器?
handler_init()无限循环调用问题
Draft更新新设计模式
需要找出model对应子类(实例类)的共有属性和方法
v1900
fix some bugs 
52 commits
Python
100.0%