日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > pytorch >内容正文

pytorch

深度学习-Tensorflow基本介绍01

發(fā)布時(shí)間:2024/9/15 pytorch 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习-Tensorflow基本介绍01 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一,認(rèn)識(shí)TensorFlow





二,安裝Tensorflow


安裝的1.13版本,目前已更新2.0+版本

pip install tensorflow==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

三,TensorFlow圖的結(jié)構(gòu)

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告 import tensorflow as tf# 實(shí)現(xiàn)一個(gè)加法運(yùn)算 a = tf.constant(5.0) b = tf.constant(6.0) print(a,b) with tf.Session() as sess: # 上下文管理器pass


import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告 import tensorflow as tf# 實(shí)現(xiàn)一個(gè)加法運(yùn)算 a = tf.constant(5.0) b = tf.constant(6.0) sum1 = tf.add(a,b) print(sum1) with tf.Session() as sess: # 上下文管理器print(sess.run(sum1))

1,數(shù)據(jù)流圖


數(shù)據(jù):tensor:張量
operation:(OP):專門(mén)運(yùn)算的操作節(jié)點(diǎn),所有操作都是一個(gè)op
圖:graph:你的整個(gè)程序的結(jié)構(gòu)


邊是由流動(dòng)的Tensor組成;
每個(gè)節(jié)點(diǎn)是Operation操作,即一些數(shù)學(xué)的操作、激勵(lì)函數(shù)的操作等,作為Operation的輸入和輸出都是Tensor(張量);
邊和節(jié)點(diǎn)共同構(gòu)成了Graph,即數(shù)據(jù)流圖;
對(duì)于數(shù)據(jù)流圖的運(yùn)行,需要?jiǎng)?chuàng)建Session這樣一個(gè)會(huì)話來(lái)運(yùn)行,Session可以在不同的設(shè)備上運(yùn)行,例如GPU、CPU等。

2,圖

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告 import tensorflow as tf# 實(shí)現(xiàn)一個(gè)加法運(yùn)算 a = tf.constant(5.0) b = tf.constant(6.0) sum1 = tf.add(a,b) graph = tf.get_default_graph() # 默認(rèn)的這張圖,相當(dāng)于是給程序分配一段內(nèi)存地址 print(graph) with tf.Session() as sess: # 上下文管理器print(sess.run(sum1))print(a.graph)print(sum1.graph)print(sess.graph)


import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告 import tensorflow as tf# 創(chuàng)建一張圖(包含了一組op和tensor) g = tf.Graph() with g.as_default():c = tf.constant(10.0)print(c.graph)# 實(shí)現(xiàn)一個(gè)加法運(yùn)算 a = tf.constant(5.0) b = tf.constant(6.0) sum1 = tf.add(a,b) graph = tf.get_default_graph() # 默認(rèn)的這張圖,相當(dāng)于是給程序分配一段內(nèi)存地址 print(graph) with tf.Session() as sess: # 上下文管理器print(sess.run(sum1))print(sum1.graph)


創(chuàng)建一張圖(包含了一組op和tensor)
op: 只要使用了TensorFlow的API定義的函數(shù),都是op
張量(tensor):指的就是數(shù)據(jù)

3,會(huì)話



在編譯環(huán)境中,輸入要執(zhí)行的Tensorflow代碼,當(dāng)創(chuàng)建會(huì)話執(zhí)行相應(yīng)的功能時(shí),首先客戶端會(huì)創(chuàng)建一個(gè)圖,接著,使用會(huì)話的run操作,這是會(huì)將需要執(zhí)行的操作傳入服務(wù)端,服務(wù)端使用C++語(yǔ)言完成相應(yīng)的操作, 得出結(jié)果后,將結(jié)果傳回客戶端,然后根據(jù)代碼命令最后輸出返回的結(jié)果。


import os import tensorflow as tf os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告# 實(shí)現(xiàn)一個(gè)加法運(yùn)算 a = tf.constant(5.0) b = tf.constant(6.0) sum1 = tf.add(a,b) graph = tf.get_default_graph() # 默認(rèn)的這張圖,相當(dāng)于是給程序分配一段內(nèi)存地址 print(graph) with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess: # 上下文管理器print(sess.run(sum1))print(sum1.graph)


import os import tensorflow as tf os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告# 實(shí)現(xiàn)一個(gè)加法運(yùn)算 a = tf.constant(5.0) b = tf.constant(6.0) sum1 = tf.add(a,b) graph = tf.get_default_graph() # 默認(rèn)的這張圖,相當(dāng)于是給程序分配一段內(nèi)存地址 print(graph) with tf.Session() as sess: # 上下文管理器print(sess.run(sum1))print("-"*50)print(sum1.graph)print("-" * 50)print(sum1.eval()) # 只要有繪畫(huà)的上下文環(huán)境,就可以使用方便的eval()

4,會(huì)話里的run()方法

import os import tensorflow as tf os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告# 實(shí)現(xiàn)一個(gè)加法運(yùn)算 a = tf.constant(5.0) b = tf.constant(6.0) sum1 = tf.add(a,b) graph = tf.get_default_graph() # 默認(rèn)的這張圖,相當(dāng)于是給程序分配一段內(nèi)存地址with tf.Session() as sess: # 上下文管理器print(sess.run([a,b,sum1]))print("-"*50)


重載機(jī)制

import os import tensorflow as tf os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告# 實(shí)現(xiàn)一個(gè)加法運(yùn)算 a = tf.constant(5.0) b = tf.constant(6.0) sum1 = tf.add(a,b)# 不是op不能直接運(yùn)行 aa = 1.0 bb = 2.0 sum2 = aa + bb# 重載機(jī)制(只要一部分是op類型,那么默認(rèn)會(huì)給運(yùn)算符重載成op類型) sum3 = a + aagraph = tf.get_default_graph() # 默認(rèn)的這張圖,相當(dāng)于是給程序分配一段內(nèi)存地址with tf.Session() as sess: # 上下文管理器print(sess.run(sum3))print("-"*50)


import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告 import tensorflow as tf# 訓(xùn)練模型,實(shí)時(shí)提供數(shù)據(jù)去進(jìn)行訓(xùn)練 # placeholder 是一個(gè)占位符,feed_dict是一個(gè)字典 plt = tf.placeholder(tf.float32,[2,3]) # 2行3列with tf.Session() as sess: # 上下文管理器print(sess.run(plt,feed_dict={plt:[[1,2,3],[4,5,6]]}))

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告 import tensorflow as tf# 訓(xùn)練模型,實(shí)時(shí)提供數(shù)據(jù)去進(jìn)行訓(xùn)練 # placeholder 是一個(gè)占位符,feed_dict是一個(gè)字典 plt = tf.placeholder(tf.float32,[None,3]) # 行不固定,3列 print(plt)with tf.Session() as sess: # 上下文管理器print(sess.run(plt,feed_dict={plt:[[1,2,3],[4,5,6],[7,8,9]]}))

5,張量的定義及數(shù)據(jù)




數(shù)據(jù)的類型代表進(jìn)度不一樣

import os import tensorflow as tf os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告# # 實(shí)現(xiàn)一個(gè)加法運(yùn)算 a = tf.constant(5.0) b = tf.constant(6.0) sum1 = tf.add(a,b)graph = tf.get_default_graph() # 默認(rèn)的這張圖,相當(dāng)于是給程序分配一段內(nèi)存地址with tf.Session() as sess: # 上下文管理器print(sum1.graph)print("-"*50)print(sum1.name)print("-"*50)print(sum1.op)print("-"*50)print(sum1.shape)

在TensorFlow中:打印出來(lái)的形狀表示如下:
0維:() 1維:(5)
2維:(5,6) 3維(2,3,4)

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告 import tensorflow as tf# placeholder 是一個(gè)占位符,feed_dict是一個(gè)字典 plt = tf.placeholder(tf.float32,[None,3]) # 形狀不固定 print(plt)# 形狀的改變(靜態(tài)形狀,動(dòng)態(tài)形狀) plt.set_shape([2,3]) print(plt)with tf.Session() as sess: # 上下文管理器pass


import tensorflow as tf# placeholder 是一個(gè)占位符,feed_dict是一個(gè)字典 plt = tf.placeholder(tf.float32,[None,3]) # 形狀不固定 print(plt)# 形狀的改變(靜態(tài)形狀,動(dòng)態(tài)形狀) plt.set_shape([4,3]) print(plt) # plt.set_shape([4,3]) # 對(duì)于靜態(tài)形狀來(lái)說(shuō),一旦張量形狀固定了,不能再次設(shè)置靜態(tài)形狀 plt_reshape = tf.reshape(plt,[2,6]) # 動(dòng)態(tài)形狀可以去創(chuàng)建一個(gè)新的張量,注意:元素?cái)?shù)量必須匹配 print(plt_reshape)with tf.Session() as sess: # 上下文管理器pass

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告 import tensorflow as tf# placeholder 是一個(gè)占位符,feed_dict是一個(gè)字典 plt = tf.placeholder(tf.float32,[None,3]) # 形狀不固定 print(plt)# 形狀的改變(靜態(tài)形狀,動(dòng)態(tài)形狀) plt.set_shape([4,3]) print(plt) # plt.set_shape([4,3]) # 對(duì)于靜態(tài)形狀來(lái)說(shuō),一旦張量形狀固定了,不能再次設(shè)置靜態(tài)形狀,不能跨維度修改 plt_reshape = tf.reshape(plt,[2,6]) # 動(dòng)態(tài)形狀可以去創(chuàng)建一個(gè)新的張量,注意:元素?cái)?shù)量必須匹配 print(plt_reshape) plt_reshape2 = tf.reshape(plt,[2,3,2]) # 動(dòng)態(tài)形狀可以去創(chuàng)建一個(gè)新的張量,注意:元素?cái)?shù)量必須匹配,可以跨維度修改 print(plt_reshape2)with tf.Session() as sess: # 上下文管理器pass


6,運(yùn)算API介紹

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告 import tensorflow as tfzero = tf.zeros([3,4],tf.float32) ones = tf.ones([3,4],tf.float32)with tf.Session() as sess: # 上下文管理器print(zero.eval())print("-"*50)print(ones.eval())






import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告 import tensorflow as tfa = [[1,2,3],[4,5,6]] b = [[7,8,9],[10,11,12]] c = tf.concat([a,b],axis=0) # 按行合并 d = tf.concat([a,b],axis=1) # 按列合并with tf.Session() as sess: # 上下文管理器print(sess.run(c))print("-"*50)print(sess.run(d))


四,可視化學(xué)習(xí)



1,變量能夠持久化保存,普通張量op不能
2,當(dāng)定義一個(gè)變量op的時(shí)候,一定要在會(huì)話當(dāng)中去運(yùn)行初始化
3,name參數(shù):在tensorboard使用的時(shí)候顯示名字,可以讓相同的op名字進(jìn)行區(qū)分

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告 import tensorflow as tf# 變量op a = tf.constant([1,2,3,4,5]) # 張量var = tf.Variable(tf.random_normal([2,3],mean=0.0,stddev=1.0)) # 創(chuàng)建一個(gè)隨機(jī)變量 print(a,var) # 必須做一步顯示的初始化 init_op = tf.global_variables_initializer() with tf.Session() as sess: # 上下文管理器# 必須運(yùn)行初始化opsess.run(init_op)print(sess.run([a,var]))



import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告級(jí)別,不顯示警告 import tensorflow as tf# 變量op a = tf.constant([1,2,3,4,5]) # 張量var = tf.Variable(tf.random_normal([2,3],mean=0.0,stddev=1.0)) # 創(chuàng)建一個(gè)隨機(jī)變量 print(a,var) # 必須做一步顯示的初始化 init_op = tf.global_variables_initializer() with tf.Session() as sess: # 上下文管理器# 必須運(yùn)行初始化opsess.run(init_op)# 把程序的圖結(jié)構(gòu)寫(xiě)入事件文件,graph:把指定的圖寫(xiě)入事件文件當(dāng)中filewriter = tf.summary.FileWriter("./test",graph=sess.graph)print(sess.run([a,var]))









總結(jié)

以上是生活随笔為你收集整理的深度学习-Tensorflow基本介绍01的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。