接着上一篇文章,stacked_ae.evaluate在测试集上可以完成验证,但是在部署时怎么预测新数据呢?predict方法预测得到重建后的数据,函数rounded_accuracy计算28个维度是否匹配的概率。最后通过reduce_mean计算平均值,numpy()属性转换为数值。
函数rounded_accuracy如下。binary_accuracy它适用于2分类的情况,有个threshold参数表示用于确定预测值是 1 还是 0 的阈值。该参数默认为0.5,将y_pred中的每个预测值和threshold对比,大于threshold的设为1,小于等于threshold的设为0,然后再计算预测与二进制标签匹配的频率。
def rounded_accuracy(y_true, y_pred):
return keras.metrics.binary_accuracy(tf.round(y_true), tf.round(y_pred))
接下来是使用卷积自动编码器来代替密集层,卷积神经网络更加适合处理图像问题。
但是以前神经网络需要固定维度,那么对于图像数据而言就需要处理,循环自动编码器可以处理任何长度的序列,每个时间步长具有28维度。
相对于其他神经网络,RNN训练较为缓慢,而且训练结果没有固定维度的效果好,欺诈卷积神经网络CNN效果最好。
网友评论