二次代價函式
交叉熵
交叉熵**如下
# -*- coding:utf-8 -*-
# -*- coding:utf-8 -*-
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
#載入資料
mnist = input_data.read_data_sets("mnist-data/", one_hot=true)
# 每個批次的大小
batch_size = 100
# 計算一共有多少個批次
n_batch = mnist.train.num_examples // batch_size
# 定義佔位符
x = tf.placeholder(tf.float32, [none, 784])
y = tf.placeholder(tf.float32, [none, 10])
# 建立神經網路
w = tf.variable(tf.zeros([784, 10]))
b = tf.variable(tf.zeros([10]))
prediction = tf.nn.softmax(tf.matmul(x, w)+b)
#交叉熵
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=prediction))
train_step = tf.train.gradientdescentoptimizer(0.2).minimize(loss)
init = tf.global_variables_initializer()
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(prediction, 1)) # 返回一維張量中最大的值所在位置
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) # 準確率
with tf.session() as sess:
sess.run(init)
for epoch in range(21):
for batch in range(n_batch):
batch_xs, batch_ys = mnist.train.next_batch(batch_size)
sess.run(train_step, feed_dict=)
acc = sess.run(accuracy, feed_dict=)
print("iter " + str(epoch) + ",testing accuracy" + str(acc))
Tensorflow入門學習筆記
最近小半年一直在學習神經網路的相關知識,一直在瞎鼓搗,沒有系統的學習乙個神經網路框架,現在要寫 了,開始學習tensorflow。參考oschina的zhuyuping的blog,慢慢了解基礎知識。tensorflow tensor flow ndarray dag 有向圖把每乙個op連線起來,在乙...
tensorflow入門學習(二)
前言 tensorflow用張量這種資料結構來表示所有的資料。用一階張量來表示向量,如 v 1.2,2.3,3.5 如二階張量表示矩陣,如 m 1,2,3 4,5,6 7,8,9 可以看成是方括號巢狀的層數。一 fetch的用法 會話執行完成之後,如果我們想檢視會話執行的結果,就需要使用fetch來...
tensorflow入門學習(五)
神經網路搭建的一般步驟 第一步 類別 我們把向量化後的x和權重矩陣w相乘,加上偏置b,然後計算每個分類的softmax概率值。predict tf.nn.softmax tf.matmul x,w b 第二步 計算損失 訓練過程指定最小化誤差用的損失函式 loss tf.reduce mean tf...