1.6 神经网络入门-神经网络实现
2018-09-24 本文已影响15人
9c0ddf06559c
1.6 神经网络实现
-
Tensorflow的api文档: https://www.tensorflow.org/api_docs/
-
在数据层面做修改,将之前的过滤器去掉
for filename in filenames: data,labels = load_data(filename) for item,label in zip(data,labels): all_data.append(item) all_labels.append(label)
-
修改w,b的维度为10维
# (3072, 10) w = tf.get_variable('w', [x.get_shape()[-1], 10], initializer=tf.random_normal_initializer(0, 1)) # (10, ) b = tf.get_variable('b', [10], initializer=tf.constant_initializer(0.0))
-
修改loss的计算公式
# 归一化 # course: 1+e^x # api:e^x / sum(e^x) # [[0.01,0.9,...,0.03],[...]] p_y = tf.nn.softmax(y_) # 5 -> [0,0,0,0,1,0,0,0,0,0] y_one_hot = tf.one_hot(y, 10, dtype=tf.float32) loss = tf.reduce_mean(tf.square(y_one_hot - p_y))
-
loss 的另一种计算方式,交叉熵
# 交叉熵 loss = tf.losses.sparse_softmax_cross_entropy(labels=y, logits=y_) # y_-> softmax # y -> one_hot # loss = ylogy_
-
修改准确度的计算公式
# bool predict = tf.argmax(y_, 1) # [1,0,1,1,1,0,0,0] correct_prediction = tf.equal(predict, y) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float64))
-
测试部分的代码不需要修改
到这里我们的神经网络就算搭建完成了,但是由于这里只有一层神经元,导致我们的准确度只有百分之40,下一章我们将实现多层的神经网络。