对于tensorflow,机器学习新手,代码能力也不强的我来说,踩的坑还是挺吓人的。遇到问题就去网上搜一些解答,网上说的都比较泛化,我就写一些接地气的解答,总结一下吧。
tensorflow 小结:
1 attempt to use uninitialized variable 。 没有初始化所有变量2 setting an array element with a sequence。 矩阵的列没有对齐
3 训练模型 LOSS下降 准确率却在下降 很可能是loss目标函数写错
4 测试准确率为0 Test没有在跟Train一个sess对话里面
5 tensorbaoard 无法显示 存储路径不可有中文名;存储路径必须是'//'而不是'/';日志文件千万别放在桌面上
7 batchsize的问题:
中文翻译为批大小(批尺寸)。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;
iteration:中文翻译为迭代,1个iteration等于使用batchsize个样本训练一次;一个迭代 = 一个正向通过+一个反向通过
epoch:迭代次数,1个epoch等于使用训练集中的全部样本训练一次;
一个epoch = 所有训练样本的一个正向传递和一个反向传递
举个例子,训练集有1000个样本,batchsize=10,那么:
训练完整个样本集需要:
100次iteration,1次epoch
8: loss降不下来 :模型的学习能力不够。
另外值得一提的是,并不是说任何的数据源我用NN,CNN,LSTM都可以取得好的效果,被很多因素影响。一方面是模型的超参数的设定问题,包括模型的‘体积’大小,学习率等等。另一方面,数据的特征也很关键,数据的不平衡问题是我遇到的最头疼的问题,所以在做模型之前,对数据进行一些处理与分析也是很有必要的。