作者karco (karco)
看板DataScience
标题[问题] 测试数剧集的预处理与测试模型疑问
时间Mon Feb 18 11:25:46 2019
作业系统: mac,win10
问题类别: ML,CNN
使用工具: python,pytorch,scikit
问题内容:
资料科学板的各位大大好
我目前所训练的模型是 利用CNN建立出一个回归预测模型。
在建置出初步的模型後,想到了两个问题,
想要跟各位大大请教。
第一个问题是关於数据的标准化 为了避免特徵尺度不同,
导致模型过度的拟合某一个特徵, 所以会对数据进行标准化
目前是使用Scikit的Standler进行这项工作
会将训练数据集进行fit_transform 然後将得到的数值
套用进测试数据集直接transform
那我目前困惑的点在於,那如果今天模型训练完成,
那我目前困惑的点在於,那如果今天模型训练完成,
那我目前困惑的点在於,那如果今天模型训练完成,
那我目前困惑的点在於,那如果今天模型训练完成,
我们保存了一个模型,今天直接载入新的数据时,
我们没有测试数据集了,但我们仍然需要将新的数据进行标准化
那这时我们需要使用的是fit_transform对吗?
这样对模型的预测结果会有影响吗?
第二个问题目前比较头痛
在於我使用测试模式下进行预测时
发现模型的预测完全不会变动
只要第一次预测某个值,後面预测的值都会一样
可是在训练模式下一切都很正常
请问这可能是遭遇到什麽样的问题呢?
模型训练时跟测试时的写法相同
只有在测试前加上
model.eval()
with torch.no_grad():
目前试了很多方法,还是找不到哪边出错
请问有大大遇到类似的问题吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.121.150
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.121.150
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1550460349.A.B2C.html
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1550460349.A.B2C.html
1F:→ f496328mm: 为什麽想用 CNN 在回归上? cnn 一般都用在影像处理02/18 13:14
2F:→ f496328mm: 为什麽想用 CNN 在回归上? cnn 一般都用在影像处理02/18 13:14
3F:→ f496328mm: 而且 cnn 有所谓的 pool,这样资料怎麽处理会很重要02/18 13:15
因为目前的input是一个二维的矩阵
因此认为使用DNN的话参数会过多而难以学习
因此才想使用CNN进行回归预测
目前网路上对於回归模型的讨论很少,所以也不知道有没有其他的架构可以使用@@
※ 编辑: karco (140.113.121.150), 02/18/2019 13:19:55
4F:推 sma1033: 没有code可参考,也不知道你的train/test流程,连资料02/18 16:40
5F:→ sma1033: 大概长什麽样子都不知道,难道是要人帮忙隔空抓药?02/18 16:41
大大抱歉 没有附上程式码的原因是因为
训练模型时并没有遇到问题
而是在切换成model.eval()时才出现
并且将训练数据集放进测试数据集时问题还是一样
因此我第一时间就判断是在eval出现问题
而非数据处理相关
所以我认为可能是一个比较大众的pytorch问题
才没有特别上传程式码 十分不好意思@@
然後这问题我暂时解决了
下午在pytorch的论坛上发现了此篇
下午在pytorch的论坛上发现了此篇
https://discuss.pytorch.org/t/performance-highly-degraded-when-eval-is-activated-in-the-test-phase/3323/4
照着回覆中的设定
将BN层
track_running_stats设成false後就正常运行了
所以问题应该是发生在单独的model.eval()前
还要手动将bn层的设置关闭
只是这样的设置 虽然有效
但不知道是否合理(?
因为看论坛後续的回覆 似乎也是众说纷纭
所以还是希望可以跟各位大大进行讨论
※ 编辑: karco (39.12.138.80), 02/18/2019 17:54:14
6F:推 f496328mm: 网路上对於回归模型的讨论应该超多02/18 18:54
网路上我找到的回归讨论
都在初步的线性回归模型而已
许多书籍的介绍也是
基本上都是重复的介绍@@
CNN进行回归问题目前只看到了几篇论文
请问大大是否有推荐的网路资源
因为我真的没找到很多
※ 编辑: karco (39.12.138.80), 02/18/2019 19:07:15
※ 编辑: karco (39.12.138.80), 02/18/2019 19:07:15
7F:→ f496328mm: 你可以用 XGBoost 试试,在kaggle上,这跟DL平起平坐02/18 19:27
好的 我会研究看看
感谢建议
※ 编辑: karco (39.12.138.80), 02/18/2019 20:11:36
8F:→ supermmi: 你第二个问题我遇过,忘了怎解掉,印像是训练的参数和 07/05 13:16
9F:→ supermmi: 测试时的参数不一致 07/05 13:16
10F:→ supermmi: 回一下前面推文,CNN也可用在非影像,如时间序列资料, 07/05 13:19
11F:→ supermmi: 用一维卷积。我的经验是效果还不错 07/05 13:19
12F:→ supermmi: cnn用回归很简单,我的做法是把最後一层softmax换成回 07/05 13:24
13F:→ supermmi: 归函数就行了,麻烦的是怎解释输出结果 07/05 13:24