tensorflow入門學習筆記 8 交叉熵

2021-08-19 15:48:08 字數 1657 閱讀 9290

二次代價函式

交叉熵

交叉熵**如下

# -*- 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...