1、 学习参数
- lr:learning过程中初始化学习率,一般是0.01或者是0.001
- epochs: learning过程中初始化迭代次数
- batch-sizes: learning过程中“批大小”,也就是每次把多少条数据打包在一起训练
- dropout: model中的随机丢弃数据,防止隐层单元的共适应问题(一个博客上看到的:dropout类似于生物进化的角色,物种为了适应不断变化的环境,性别的出现有效的阻止了过拟合问题)
- kernel-sizes: model中卷积窗口
- kernel-num: model中每种卷积窗口的特征映射数量
- embed-dim: 嵌入层
2、 微调参数
(1)初始化参数
- kernel-sizes: [3,4,5]
- kernel-num: [100]
- Test-Acc: 77%
(2)增加一个卷积窗口
- Kernel-sizes:[3,4,5,6]
- Kernel-num:[100]
- 第一次训练:Test-Acc:79.8669%
- l第二次训练:Test-Acc:80.3669%
(3)增加映射数量
- Kernel-sizes:[3,4,5,6]
- Kernel-num:[200]
- 第一次训练:Test-Acc:79.8114%
- 第二次训练:Test-Acc:81.2535%
(4)再增加一个卷积窗口
- Kernel-sizes:[3,4,5,6,7]
- Kernel-num:[200]
- 第一次训练:Test-Acc:81.8081%
- 第二次训练:Test-Acc:80.5879%
- 第二次训练相对第一次训练Acc下降
(5)再增加一个卷积窗口
- Kernel-sizes:[3,4,5,6,7,8]
- Kernel-num:[200]
- 第一次训练:Test-Acc:80%左右
- 卷积窗口在增加没有什么大的影响
(6)降低嵌入层
- Kernel-sizes:[3,4,5,6,7]
- Kernel-num:[200]
- embed-dim: [64]
- 第一次训练:Test-Acc:82.1960%
- 目前准确率最高是82.1960%
3、 本机跑程序占用了全部的CPU,改用GPU跑程序,启用CUDA(参数,-no-cuda:True)
-
错误:Tensorsare on different GPUS ,google一下发现模型加载和文件加载使用了不同的gpus
-
在model.py的forward中加入
-
if self.args.cuda:
self.convs1= [model.cuda() for model in self.convs1] -
源码错误:train.py中
-
if args.cuda:
feature, target = feature.cuda(),feature.cuda() -
刚开始没注意,现在改成
-
if args.cuda:
feature, target = feature.cuda(),target.cuda() -
cuda能够跑起来了,本机的cpu占用的很少,但是速度确实比cpu慢了很多,按理来说,gpu应该是比cpu快很多的才对,还没弄懂是什么原因。
4、 Linux bash命令学习
(1)查看文件大小、内存大小、cpu信息、硬盘空间
- 显示当前目录所有文件大小的命令:ls -lht
- 内存空间、CPU信息、硬盘空间:htop、top(htop详解参考:http://blog.csdn.net/skh2015java/article/details/53173896)
(2)查看目前运行程序情况,剩余内存,kill程序
- 查看目前程序运行情况:top、htop
- 查看内存使用情况:free、free -m
- kill程序:kill、kill -9 pid(强制杀死进程)参考:http://www.cnblogs.com/wangcp-2014/p/5146343.html
(3)sed命令、grep命令、awk命令
5、 python基础
(1) python中三元表达式
- 类比于C、C++、Java中都有的三目运算符,python中使用下面语句实现三元表达式
- true_part if condition else false_part。
- condition = True 执行 true_part
- condition = False 执行 false_part
(2)python中Lambda表达式
- 使用Lambda表达式可以省略一个函数,也可以称作匿名函数
- lambda x:x*x
- def la(x):
- return x * x
- 可以看出(1)可以语句简单快捷