tensorflow 學習 第一天

2021-10-07 13:09:52 字數 2374 閱讀 9378

簡單介紹了tensorflow的優點,略

os.environ[『tf_cpp_min_log_level』] = 『2』

降低報錯等級

with tf.session() as sess:

sess.run(***)

利用會話進行程式執行

tensorflow是計算密集型,對比的io密集型

呼叫圖,用tf.get_default_graph()

print該graph,會返回乙個graph的分配記憶體

定義了一些在預設圖中的量,

a=tf.constant(4.0)

b=tf.constant(5.0)

print(a.graph)和print(b.graph)都會返回預設圖

我們可以生成乙個圖,比如g=tf.graph(),這樣生成了乙個新的圖

with g.as_default():

c=tf.constant(5.6)

下文的內容就生成在新的圖g中,print(c.graph)和print(a.graph)不是同一張圖

包含op和tensor,op就是所有tf點後面的操作,包括標量加減乘除,矩陣乘法,tf.variable等等,都是操作運算,如tf.session等

tensor就是張量資料,如a=tf.constant(3.0),這個操作既是乙個op運算,也是乙個張量

功能:執行圖的結構,分配資源運算,掌握資源,使用tf.session()來開始一段會話,只能執行乙個圖結構,如果會話中存在非圖中結構會報錯

指定哪張圖進行運算可以使用tf.session(graph=g)

with tf.session(graph=g) as sess:

然後後面往下寫,這個時候執行的就是圖g了

會話需要進行**,sess.close(),比較麻煩。用上下文管理器,python縮排直接用,使用with結構,縮排回來自動關閉會話

config=tf.configproto(log_device_placement=true)可以返回程式在**執行,cpu還是gpu

互動式的實現:tf.interactivesession()

在命令列中如果想要tensorflow執行檢視資料,需要使用with tf.session() as sess:

sess.run()

這樣的操作對於想要直接檢視結果的情況非常麻煩,在之前使用tf.interactivesession()**就可以直接用eval函式進行輸出

可參考這篇文章

sess.run()

run的東西必須是這張圖里的tensor或者op

首先執行的資料要用列表的形式括起來[a,b,sum]

sess.run([a,b,sum])這樣

可以使用feed_dict 來填充資料

先用佔位符把位置佔上,a=tf.placeholder(tf.float32,[2,3])

代表a是乙個float型2*3的矩陣,在後面run的時候用feed_dict來賦值

sess.run(sum,feed_dict=)

樣本可以不固定,使用none來佔位,a=tf.placeholder(tf.float32,[none,3])

張量有以下屬性,形狀,所屬圖,名字,op型別等

如( 「add:0」,shape=(),dtype=float32)

可以通過以下方式呼叫

a.shape

a.graph

a.name

a.op

分為動態和靜態修改

改本身張量用tf.tensor.get_shape 獲取形狀

tf.tensor.set_shape()更新靜態形狀(tensor指代的是具體的那個tensor)

原本是none的值可以通過set_shape函式進行更改,然而已經定好的維度不能再進行更改

而一般常用的是使用reshape函式,tf.reshape 來建立乙個不同形狀的新的張量

tensor2=tf.reshape(tensor,[2,3])

tf.zeros(shape,dtype=tf.float32,name=none)

tf.ones(同上)

tf.constant(value,dtype=none,shape=none,name=『const』)

tf.random_normal(shape,mean,stddev,dtype,seed,name)

mean預設值0.0

stddev方差1.0

dtype float32

seed種子點預設none

name none

張量變換

tf.cast(x,dtype)把x換成dtype格式

張量擴充套件

tf.concat([a,b],axis=0)

axis: 0為按行,把行疊加,1為把列疊加

學習第一天

知識是學會的,不是教會的 程式設計 驗證性或體驗性 創造性 學程式設計的4個階段 1.能看懂別人的 除錯別人的 2.能修改別人的 3.能拷貝別人的 做自己的事 4.能自己設計編寫 方法 多讀 做記錄 執行 修改 執行 練習,光說不練假把式 刷oj總結 寫部落格或許是個不錯的選擇 學生和已經工作的程式...

php學習第一天

第一章 安裝 php語言的核心特性是強大的字串和資料處理工具,還提供物件導向的支援。可以用c寫自己的php擴充套件模組。php能做什麼?伺服器指令碼,命令列指令碼,客戶端gui應用,安裝php環境 www.php.net,www.apache.org 2解壓後放在同一目錄下 3對apache和php...

第一天MySQL學習

資料庫的管理 顯示所有資料庫show databases 使用資料庫use databasename 資料庫建立create database dbname 資料庫刪除drop database dbname 表的管理 顯示所有表show tables 建立表create table 顯示表定義原始...