tensorflow**主要包括兩部分:構建圖模型和計算圖模型。圖模型的基本構成是節點,每個節點代表的是乙個操作(operation)或者理解成函式,每個節點都有輸入輸出,每個節點通過線條相連。例如常數節點(constant node)沒有輸入,輸出為常數;變數節點(variable node)可以更新數值;佔位符節點(placeholder node)是具有輸入的constant node,相當於確定了圖的輸入。
(1)init = tf.global_variables_initializer()表示將variable初始化,初始化的數值是作為tf.variable的輸入引數的,tf.global_variables_initializer()只是啟動這個初始化的操作。
(2)optimizer = tf.train.gradientdescentoptimizer(0.01)和train = optimizer.minimize(loss)表示設定為梯度下降的更新演算法,並對variable的數值根據loss更新一次。
在圖構建好之後就可以對其進行計算,sess = tf.session()就是啟**計算的命令,然後可以用sess.run(subgraph)計算任意乙個節點或者是中間變數的結果。
import numpy as np
import tensorflow as tf
# model parameters
w = tf.variable([.3], tf.float32)
b = tf.variable([-.3], tf.float32)
# model input and output
x = tf.placeholder(tf.float32)
linear_model = w * x + b
y = tf.placeholder(tf.float32)
# loss
loss = tf.reduce_sum(tf.square(linear_model - y)) # sum of the squares
# optimizer
optimizer = tf.train.gradientdescentoptimizer(0.01)
train = optimizer.minimize(loss)
# training data
x_train = [1,2,3,4]
y_train = [0,-1,-2,-3]
# training loop
init = tf.global_variables_initializer()
sess = tf.session()
sess.run(init) # reset values to wrong
for i in range(1000):
sess.run(train, )
# evaluate training accuracy
curr_w, curr_b, curr_loss = sess.run([w, b, loss], )
print("w: %s b: %s loss: %s"%(curr_w, curr_b, curr_loss))
TensorFlow 基本概念
tensorflow使用圖來表示計算任務,圖中的節點被稱之為op operation的縮寫 乙個op獲得n個tensor,執行計算,產生n個tensor。每個tensor是乙個型別化的多維陣列。例如,可以將一小 像集表示為乙個四維浮點數陣列,這個四個維度分別是 batch,height,width,...
tensorflow中的基本概念
本文是在閱讀官方文件後的一些個人理解。nodes in the graph are called ops short for operations an op takes zero or more tensors,performs some computation,and produces zero...
深度學習筆記 tensorflow基本概念
用tensorflow這樣工具的原因是 它允許我們用計算圖 computational graphs 的方式建立網路.下面就是對計算圖的直觀講解。例如 計算圖所建立的只是乙個網路框架。在程式設計時,並不會有任何實際值出現在框架中。所有權重和偏移都是框架中的一部分,初始時至少給定初始值才能形成框架。因...