1. 程式人生 > >【TensorFlow】神經網路引數與變數(四)

【TensorFlow】神經網路引數與變數(四)

在TensorFlow中,變數(tf.Variable)的作用就是儲存和更新神經網路的引數。在神經網路中,給變數賦予隨機數最為常見,所以一般使用隨機數給TensorFlow的變數初始化。

import tensorflow as tf
#定義矩陣變數weights,2X3的矩陣,矩陣中元素的均值為0,標準差為2。
weights = tf.Variable(tf.random_normal([2,3],stddev=2))
sess = tf.Session()
#Tensorflow中,所有變數都必須初始化才能使用
init = tf.global_variables_initializer()
sess.run
(init) print(sess.run(weights))

1、tf.random_normal 正態分佈隨機數
2、tf.truncated_normal 正態分佈,但如果隨機出來的值偏離值超過2個標準差,那麼這個數將會被重新隨機
3、tf.random_uniform 均勻分佈
4、tf.random_gamma Gamma 分佈

weights = tf.Variable(tf.random_normal([2,3],stddev =2))
weights1 = tf.Variable(tf.truncated_normal([2,3],stddev =2))
weights2 = tf.Variable
(tf.random_uniform([2,3])) weights3 = tf.Variable(tf.random_gamma([2,3],alpha =[0.5, 1.5] )) sess = tf.Session() '''執行sess.run()前要記得初始化所有的變數:對於constant定義的變數可以不初始化,但是Variable的變數一定要初始化''' init_ = tf.global_variables_initializer() sess.run(init_) print(sess.run(weights)) print(sess.run(weights1)) print(sess.run
(weights2)) print(sess.run(weights3))

TensorFlow也支援常數來初始化一個變數。

1、tf.constant 產生一個給定值的常量
2、tf.zeros(shape,dtype) 產生全為0的陣列
3、tf.ones 產生全為1的陣列
4、tf.fill 產生一個全部為給定數值的陣列

bb1= tf.constant([1])
bb2 = tf.zeros([2,2])
bb3 = tf.ones([2,2])
bb4 = tf.fill([2,2],5)
print(weights)
sess = tf.Session()
'''執行sess.run()前要記得初始化所有的變數:對於constant定義的變數可以不初始化,但是Variable的變數一定要初始化'''
init_ = tf.global_variables_initializer() 
sess.run(init_)
print(sess.run(bb1))
print(sess.run(bb2))
print(sess.run(bb3))
print(sess.run(bb4))

在神經網路中,偏執項(bias)通常會使用常數來設定初始值。

init_ = tf.global_variables_initializer() 
sess.run(init_)
biases = tf.Variable(tf.zeros([2,2]))
sess.run(biases )

前向傳播過程

import tensorflow as tf
#宣告w1,w2兩個變數,這裡還通過seed固定隨機種子,保證每次執行的結果一樣
w1 = tf.Variable(tf.random_normal([2,3],stddev=1,seed =1))
w2 = tf.Variable(tf.random_normal([3,1],stddev=1,seed =1))
#暫時將輸入的特徵向量定義為一個常量。X是一個1*2的矩陣
x = tf.constant([[0.7,0.9]])
a = tf.matmul(x,w1)
y = tf.matmul(a,w2)
sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
print(sess.run(y))
sess.close()

維度變數是一個重要的屬性,和型別不大一樣,維度在執行中是可能改變的,但是需要設定引數validate_shape =False

w11 = tf.Variable(tf.random_normal([2,3],stddev=1,seed =1))
w22 = tf.Variable(tf.random_normal([3,1],stddev=1,seed =1))
#tf.assign(w11,w22)會報錯,shape不匹配
tf.assign(w11,w22,validate_shape =False)#可以調整

相關推薦

TensorFlow神經網路引數變數

在TensorFlow中,變數(tf.Variable)的作用就是儲存和更新神經網路的引數。在神經網路中,給變數賦予隨機數最為常見,所以一般使用隨機數給TensorFlow的變數初始化。 import tensorflow as tf #定義矩陣變數wei

Tensorflow輔助工具篇——matplotlib介紹

期待已久的一章!資料視覺化,資料圖表分析,paper畫圖神器,matplotlib登場了 因為有太多可講,我們分成幾篇來詳細介紹,如果你想發paper,學好這個,如果你要做工程,那更要學好這個,總的來說,視覺化圖表繪製工具是必須要熟練使用的。 有人可能會說Tensorflo

0x10軟考|網路工程師經驗分享之網路互聯網際網路

目錄 一、傳輸層協議TCP 二、傳輸層協議UDP 三、常見應用層協議 一、傳輸層協議TCP TCP協議:傳輸控制協議,面向位元組流按順序、連線、可靠、全雙工,可變滑動視窗、緩衝累積傳送。協議號6 下面是TCP段(斷頭),TCP頭(傳輸頭),TCP包

教程Matrikon OPC使用教程連載

MatrikonOPC介紹: Matrikon 是基於OPC UA和基於OPC的控制自動化資料互操作性產品的供應商,提供自動化廠商的高階OPC UA開發工具包,適用於從嵌入式裝置到雲應用的所有產品線。對於終端使用者客戶,Matrikon提供了關鍵資料工具,以最好地促進企業廣泛的資料共享。產品主

原創從原始碼剖析IO流管道流--轉載請註明出處

一、管道流的特點與作用: PipedInputStream與PipedOutputStream分別為管道輸入流和管道輸出流。管道輸入流通過連線到管道輸出流實現了類似管道的功能,用於執行緒之間的通訊。在使用時,通常由某個執行緒向管道輸出流中寫入資料。根據管道的特性,這些資料會自動傳送到與管道輸

原創Linux虛擬化KVM-Qemu分析之CPU虛擬化2

# 背景 - `Read the fucking source code!` --By 魯迅 - `A picture is worth a thousand words.` --By 高爾基 說明: 1. KVM版本:5.9.1 2. QEMU版本:5.0.0 3. 工具:Source Insight

CV知識學習神經網路梯度歸一化問題總結+highway network、ResNet的思考

目錄   一、梯度消失/梯度爆炸的問題 二、選擇其他啟用函式 三、層歸一化 四、權值初始化 五、調整網路的結構 一、梯度消失/梯度爆炸的問題 首先來說說梯度消失問題產生的原因吧,雖然是已經被各大牛說爛的東西。不如先看一個簡單的網路

Tensorflowtf.app.run()命令列引數解析

tf.app.run() 首先給出一段常見的程式碼: if __name__ == '__main__': tf.app.run() 找到Tensorflow中關於上述函式run()的原始

tensorflow命令列引數解析

1. tf.app.flags,用於支援接受命令列傳遞引數 import tensorflow as tf #第一個是引數名稱,第二個引數是預設值,第三個是引數描述 tf.app.flags.DEFINE_string('str_name', 'def_v_1',"descrip1")

swift1、常量變數

swift和python不一樣的是,他作為系統程式語言,不像python那樣拿來就用,要先對物件進行宣告,而宣告過後,也有所不同; 一、常量與變數 常量的值一旦設定就不能改變,而變數的值可以隨意更改。 常量用let關鍵字進行宣告,變數用var關鍵字進行宣告; 1.1宣

Tensorflowtf.app.run() tf.app.flags()

tf.app.flags tf.app.flags.DEFINE_XXX()用來定義引數項: import tensorflow as tf tf.app.flags.DEFINE_float(

MOOCPython網路爬蟲資訊提取-北京理工大學-part 4

網路爬蟲之框架 1.scrapy爬蟲框架介紹 1.1.scrapy爬蟲框架介紹 安裝方法: 簡要地說,Scrapy不是一個函式功能庫,而是一個快速功能強大的網路爬蟲框架。 (爬蟲框架是實現爬蟲功能的一個軟體結構和功能元件集合,是一個半成品,

MOOCPython網路爬蟲資訊提取-北京理工大學-part 1

【第〇周】網路爬蟲之前奏 網路爬蟲”課程內容導學 【第一週】網路爬蟲之規則 1.Requests庫入門 注意:中文文件的內容要稍微比英文文件的更新得慢一些,參考時需要關注兩種文件對應的Requests庫版本。(對於比較簡單的使

MOOCPython網路爬蟲資訊提取-北京理工大學-part 3

【第三週】網路爬蟲之實戰 一、Re(正則表示式)庫入門 1.正則表示式的概念 1.1正則表示式是什麼 正則表示式是用來簡潔表達一組字串的表示式。 使用正則表示式的優勢就是:簡潔、一行勝千言 一行就是特徵(模式) 例1:代表一組字串:

演算法神經網路和深度學習簡介

01 深度學習掀起海嘯如今,深度學習浪潮拍打計算機語言的海岸已有好幾年,但是,2015年似乎才是

MOOCPython網路爬蟲資訊提取-北京理工大學-part 2

【第二週】 網路爬蟲之提取 Beautiful Soup庫入門 Beautiful Soup庫的安裝與測試 <html><head><title>This is a python demo page<

搜尋RQ47神經網路

題目描述 【問題背景】 人工神經網路(Artificial Neural Network)是一種新興的具有自我學習能力的計算系統,在模式識別、函式逼近及貸款風險評估等諸多領域有廣泛的應用。對神經網路的研究一直是當今的熱 門方向,蘭蘭同學在自學了一本神經網路的入門書籍

opencv神經網路識別字母+數字

繼承自本人部落格: http://blog.csdn.net/qq_15947787/article/details/51385861 原文只是識別數字0-9,簡單修改後可以識別24個字母(除了I,O)與數字。 把0與O看成一類,1與I看成一類 附件從原文下載即可。 //o

IrisKeras神經網路分類器和scikit-learn邏輯迴歸分類器的構建

原文連結:https://github.com/fastforwardlabs/keras-hello-world/blob/master/kerashelloworld.ipynb 原文標題:“Hello world” in Keras 本文全部程式碼基於python2,

神經網路神經網路架構大全剖析附原始論文地址

隨著新的神經網路架構不時出現,很難跟蹤這些架構。知道所有縮寫(DCIGN,BiLSTM,DCGAN,anyone?)起初可能有點壓倒性。 所以我決定編寫一個包含許多這些體系結構的備忘單。這些大多數是神經網路,有些是完全不同的野獸。雖然所有這些體系結構都是新穎而獨特的,但是當