tf的常見用法

2022-07-09 14:15:12 字數 3726 閱讀 7273

begin:

import tensorflow as tf

1、tf.constant:建立乙個常數張量,傳入list或者數值或字串來填充

tf.constant([1,5,6,3,4,7,8,9])

###輸出:

tensor = tf.constant(-1.0, shape=[2, 3])

print(tensor)

###輸出:
tf.tensor(

[[-1. -1. -1.]

[-1. -1. -1.]], shape=(2, 3), dtype=float32)

import

tensorflow as tf

mss = tf.constant("

welcom to tensorflow!\n")

with tf.session() as sess:

print(sess.run(mss).decode())

###輸出:  

welcom to tensorflow!

2、tf.nn.conv2d:創在tensorflow中使用tf.nn.conv2d實現卷積操作
tf.nn.conv2d(

input,

filter,

strides,

padding,

use_cudnn_on_gpu=true,

data_format='

nhwc',

dilations=[1, 1, 1, 1],

name=none

)

input:輸入影象,具有[batch,in_height,in_width,in_channels]這樣的4維shape,分別是數量、高度、寬度、通道數(灰度圖為1,彩圖為3),資料

型別為float32或float64。

filter:cnn中的卷積核,shape是[filter_height,filter_width,in_channels,out_channels]:濾波器高度、寬度、影象通道數、濾波器個數,資料型別和input相同。

padding:定義元素邊框和元素內容之間的空間,只能是『same』(邊緣填充)或者『valid』(邊緣不填充)。

3、tf.zeros:建立乙個全零矩陣

tf.zeros([2,3],'

int32

')

###輸出:

4、tf.truncated_normal:從截斷的正態分佈中輸出隨機值。

生成的值服從具有指定平均值和標準偏差的正態分佈,如果生成的值大於平均值2個標準偏差的值則丟棄重新選擇。

在正態分佈的曲線中:

橫軸區間(μ-σ,μ+σ)內的面積為68.268949%。

橫軸區間(μ-2σ,μ+2σ)內的面積為95.449974%。

橫軸區間(μ-3σ,μ+3σ)內的面積為99.730020%。

x落在(μ-3σ,μ+3σ)以外的概率小於千分之三,在實際問題中常認為相應的事件是不會發生的,基本上可以把區間(μ-3σ,μ+3σ)看作是隨機變數x實際可能的取值區間,這稱

之為正態分佈的「3σ」原則。

在tf.truncated_normal中如果x的取值在區間(μ-2σ,μ+2σ)之外則重新進行選擇。這樣保證了生成的值都在均值附近。 

tf.truncated_normal(

shape,

mean=0.0,

sttdev=1.0,

dtype=tf.float32,

seed=none,

name=none

)

shape:一維張量,輸出張量

mean:正態分佈的均值

stddev:正態分佈的標準差

dtype:輸出的型別

seed:乙個整數,當設定之後,每次生成的隨機數都一樣

name:操作的名字

舉個栗子:

執行結果:

5、tf.random_normal:從正態分佈中輸出隨機值
tf.random_normal(

shape,

mean=0.0,

sttdev=1.0,

dtype=tf.float32,

seed=none,

name=none

)

shape:一維張量,輸出張量

mean:正態分佈的均值

stddev:正態分佈的標準差

dtype:輸出的型別

seed:乙個整數,當設定之後,每次生成的隨機數都一樣

name:操作的名字

例如:

import

tensorflow as tf

a = tf.variable(tf.random_normal([2,2],seed=1))

b = tf.variable(tf.truncated_normal([2,2],seed=2))

init =tf.global_variables_initializer()

with tf.session() as sess:

sess.run(init)

print('

\n','a:'

) print

(sess.run(a))

print('

\n','b:'

) print(sess.run(b))

輸出

指定seed之後,a的值不變,b的值也不變。(即多次執行的結果是一樣的)
全0矩陣:tf.zeros([2,3],int32)

全1矩陣:tf.ones([2,3],int32)

全為指定數字矩陣:tf.fill([2,3],9)

給定常量:tf.constant

矩陣對應位置相乘:*

矩陣變數:tf.variable

矩陣乘法:tf.matmul

均勻分布:tf.random_uniform

gamma分布:tf.random_gamma

限制張量值得範圍:tf.clip_by_value(y, 1e-10, 1.0)

參考:

end.

TF用法指導

一 變數 1 tf.variables 功能 建立變數 2 tf.get variable 功能 建立變數,注意和上面的區別 3 tf.variable scope 功能 其實只要記住一件事情就ok了 當reuse為false或者none時 這也是預設值 同乙個tf.variable scope下面...

ROS學習之tf基本用法

主要細節參見wiki,這裡我寫一下它的broadcaster和listener做個記錄 tf broadcaster.cpp include includeint main int argc,char ar 在broadcaster中我們主要描述的是兩個座標frame之間的位置關係,這裡是base ...

mysql 常見用法 mysql常見用法

檢視慢日誌 show variables like slow query log show variables like long query time 設定慢日誌記錄什麼樣的sql,預設10s log queries not using indexes 未使用索引的查詢也被記錄到慢查詢日誌中,一般...