因为电脑的问题所以没有跑成trainer.py,只好尝试debugger.py
这是这篇文章所做的模型结构
从主代码来看
首先是初始化参数
- “–patience” 是用来初始化模型 torch.optim.lr_scheduler.ReduceLROnPlateau类,这个类的作用是当网络的评价指标不在提升的时候,可以通过降低网络的学习率来提高网络性能,而这里的“–patience”是用来监控迭代次数不超过多少次,也就是说,超过“–patience”次数之后评价指标还没有提升,则降低学习率。
- “–mode”初始化为train表示对train_loss进行训练找到最佳的值
其他的就不说了,都有注释。
args = parser.parse_args()
args.cuda = torch.cuda.is_available()
debugger = LSTMDebugger(args)
debugger.train()
这里的debugger是一个LSTMDebugger类
而这个类继承了它的父类DebuggerBase类,所以它现在有父类和自己的方法。不知道什么是继承父类可以看一下
https://blog.csdn.net/qianmosolo/article/details/80247671
然后我们直接进入train()方法
def train(self):
for epoch_id in range(self.start_epoch, self.args.epochs):
train_tag_loss, train_stop_loss, train_word_loss, train_loss = self._epoch_train()
val_tag_loss, val_stop_loss, val_word_loss, val_loss = self._epoch_val()
这里的start_ep