Tensorflow 入門記錄

2021-08-17 16:39:14 字數 1777 閱讀 6788

tensor為張量,flow為流圖。

tensorflow內含有很多寫好的工具,如梯度下降演算法,卷積操作等。

在使用tensorflow時,先導入包import tensorflow as tf,在進行定義tensorflow變數時,使用tf.variable(引數),有趣的是乙個叫做佔位符的工具,tf.placeholder(shape)申請乙個佔位符,這類似設定了乙個shape已經知道的未知變數,在後面可以使用feed_dict=來對佔位符進行賦值。這個op在寫完後徐要需要session來進行執行,sess = tf.session()申請會話,最後通過sess.run(要執行的內容)方法來完成計算。

tensorflow 簡單神經網路案例:

y = xw+b

x=先設這個資料集為乙個長為任何長度,寬為28*28的矩陣。

w=再設定權重引數wij,wij為長度為28*28,寬為10的矩陣。

b=然後新增乙個長度為10的偏置項

然後通過交叉熵來作為損失函式,進行迭代,使損失函式逐步減小。

**實現:

import tensorflow as tf

# 申請x佔位符,none表示任意長度。

x = tf.placeholder(tf.float32, [none, 28*28])

w = tf.variable(tf.zeros[28*28, 10])

b = tf.variable(tf.zeros[10])

#建立方程 y = xw+b

y = tf.nn.sotfmax(tf.matmul(x, w) + b)

#申請對應的標籤佔位符

y_ = tf.placeholder("float", [none, 10] )

#交叉熵作為損失函式

cross_entropy = tf.reduce_sum(y_*tf.log(y))

#梯度下降演算法 學習率=0.01

train_step = tf.train.gradientdescentoptimizer(0.01).minimize(cross_entropy)

init = tf.initialize_all_variables()

#建立session

sess = tf.session()

#初始化所有引數

sess.run(init)

#匯入資料集 資料集位址在本地的/home/enche/mnist_data目錄下

import tensorflow.examples.tutorials.mnist.input_data as input_data

mnist = input_data.read_data_sets("/home/enche/mnist_data", one_hot = true)

#將x和y_進行替換成訓練資料

for i in range(1000):

batch_xs, batch_ys = minist.train.next_batch(100)

sess.run(train_step, feed_dict = )

#列印變數

print sess.run(w)

問題:在列印變數時,因為預設情況不會列印出所有矩陣引數,可以通過設定

import numpy as np

np.set_printoptions(threshold=np.inf)

實現列印所有內容,解決出現省略號的問題。

知乎TensorFlow入門學習記錄

import tensorflow as tf a tf.placeholder tf.int16 接受的資料型別 b tf.placeholder tf.int16 add tf.add a,b mul tf.mul a,b with tf.session as sess print additi...

Tensorflow學習記錄

tensorflow是乙個使用採用資料流圖進行數值計算的開源軟體庫。什麼是資料流圖?資料流圖用結點 nodes 和邊 edges 的有向圖來表示數學計算。結點一般用來表示施加的數學操作,但也可以表示資料輸入的起點和資料輸出的終點。邊表示結點之間的輸入 輸出關係。這些邊可以表示多維資料陣列,我們稱這些...

TensorFlow學習記錄

在電腦上按照官方的pip3安裝方法把tensorflow安裝起了。首先學習的是mnist資料集手寫數字分類。這個是入門級的優化方案。剛剛開始的時候對sess。run等很疑惑,反覆研究了幾天。終於知道,學習tensorflow的框架,主要看前面的輸入x和輸出y,以及待優化的引數w和bias項b的關係,...