- 模型为三层神经网络的深度神经网络模型
- 模型训练的一些超参数都以及设置了函数入口,直接修改即可
- 模型暂时不支持修改超参数改变隐藏层层数
- 模型仅隐藏层增加了dropout,dropout是防止或减轻过拟合而使用的函数,在不同的训练过程中随机扔掉一部分神经元。
也就是让某个神经元的激活值以一定的概率p,让其停止工作,这次训练过程中不更新权值,也不参加神经网络的计算。
但是它的权重得保留下来(只是暂时不更新而已),因为下次样本输入时它可能又得工作了。
keep_prob表示:每个神经元将以keep_prob的概率决定是否输出,设置神经元被选中的概率,在初始化时keep_prob是一个占位符,
keep_prob = tf.placeholder(tf.float32) 。tensorflow在run时设置keep_prob具体的值。 - 其中损失函数使用tf.nn.sigmoid_cross_entropy_with_logits,其与sigmoid搭配使用的交叉熵损失函数,输入不需要额外加一层sigmoid, tf.nn.sigmoid_cross_entropy_with_logits中会集成有sigmoid并进行了计算优化;它适用于故障分类这种类别之间不是相互排斥的应用场景。
- 由于使用了上一条所说的损失函数,所以模型的输出层没有加激活函数,因此在预测的时候,我们需要将它再使用tf.nn.sigmoid函数处理, 将最终每一类结果分布到0-1之间
- 针对以上signoid输出结果我们可以使用阈值来决定最终结果是否为1,来判断是否故障
- 我试过增加隐藏层层数,增加隐藏层维度等等,模型效果依然没有变化
- batch_size大小可以根据性能尽可能设置大一些
- 预测时,结果保存在原文件输入数据的后面,预测时一个excel文件最好只有一张数据表单,不然输出结果后,其他表单数据会丢失