版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2021/3/91Glimpse2021/3/92TensorFlow是什么?是什么?2021/3/93TensorFlow特性特性 Python API 高度的靈活性 可移植性(Portability),Tensorflow 在CPU和GPU上運(yùn)行,比如可以運(yùn)行在臺(tái)式機(jī)、服務(wù)器、手機(jī)移動(dòng)設(shè)備等等。 自動(dòng)求微分 性能最優(yōu)化 龐大的社群支持2021/3/94庫名稱庫名稱開發(fā)語言開發(fā)語言平臺(tái)平臺(tái)特性特性CaffeCaffe-Caffe2C+/python/MatlabLinux / Mac OS / Windows在CV領(lǐng)域應(yīng)用最為廣泛TheanopythonLinux / Mac OS / Wi
2、ndows發(fā)布早,文檔豐富 適用于學(xué)術(shù)領(lǐng)域PyTorchTorch -PyTorchPython(Torch開發(fā)語言為Lua/C)Linux / Mac OS輕量級、靈活TensorflowC+ / PythonLinux / Mac OS / Windows Android / iOS功能齊全、適合企業(yè)級開發(fā)2021/3/95一些好玩的TensorFlow項(xiàng)目s2021/3/96最終相關(guān)成果發(fā)表在Nature,而且在Nature的封面,這是一個(gè)特別成功地通過計(jì)算機(jī)視覺及深度學(xué)習(xí)相關(guān)的技術(shù),利用廉價(jià)的移動(dòng)設(shè)備,能夠很有效地檢測是否有皮膚癌,大大節(jié)省了醫(yī)療檢測的成本2021/3/972021/3
3、/982021/3/99TensorFlow的系統(tǒng)結(jié)構(gòu)以C API為界,將整個(gè)系統(tǒng)分為前端和后端兩個(gè)子系統(tǒng):前端系統(tǒng):提供編程模型,負(fù)責(zé)構(gòu)造計(jì)算圖;后端系統(tǒng):提供運(yùn)行時(shí)環(huán)境,負(fù)責(zé)執(zhí)行計(jì)算圖。2021/3/910TensorFlow核心程序由2個(gè)獨(dú)立部分組成: a:Building the computational graph構(gòu)建計(jì)算圖 b:Running the computational graph運(yùn)行計(jì)算圖計(jì)算圖是一系列的TensorFlow操作排列成一個(gè)有向無環(huán)圖。2021/3/911tensor(張量)name,shape,typeimport tensorflow as tf a
4、= tf.constant(1,2,3)b = tf.constant(2,3,5)result = tf.add(a,b, name = “add”) print(result)tensor(“add:0, shape=(3,), dtype=int32)add:0 shape = (3,)dtype=int32 2021/3/912graph(計(jì)算圖)會(huì)話op (節(jié)點(diǎn))tensor2021/3/913session(會(huì)話)sess = tf.Session()#創(chuàng)建一個(gè)會(huì)話 sess.run(result)#運(yùn)行此會(huì)話 Sess.close()#運(yùn)行完畢關(guān)閉此會(huì)話運(yùn)行結(jié)果with tf.S
5、ession() as sess: sess.run(result)#通過python的上下文管理器來使用會(huì)話,當(dāng) 上下文退出時(shí)會(huì)話管理和資源釋放也自動(dòng)完成2021/3/914變量 Variable存儲(chǔ)和更新初始化weights = tf.Variable(tf.random_normal(2,3, stddev = 2),name=weights)這里生成 23 的矩陣,元素的均值為0,標(biāo)準(zhǔn)差為2(可用mean指定均值,默認(rèn)值為0)。隨機(jī)數(shù)生成函數(shù):tf.truncated_normal()正太分布,偏離平均值超過兩個(gè)偏差,重新選擇tf.random_uniform(最小值,最大值) 平均分
6、布 (控制字符中可加入種子,seed = n )常數(shù)生成函數(shù): 全零數(shù)組 tf.zeros(2,3,int32)全一數(shù)組 tf.ones()全為給定的某數(shù)(例如 9):tf.fill(2,3,9)產(chǎn)生給定值得常量 tf.cinstant(1,2,3)with tf.Session() as sess: sess.run(weights.initializer)init = tf.initialize_all_variables()with tf.Session() as sess: sess.run(init)初始化方式2021/3/915Placeholder & Feedinput
7、1 = tf.constant(3.0) input2 = tf.constant(2.0) mul = tf.multiply(input1, input2 )with tf.Session() as sess:result = sess.run(mul)print(result)input1 = tf.placeholder(tf.float32) #占位 符 input2 = tf.placeholder(tf.float32)output = tf.multiply(input1, input2) with tf.Session() as sess:print(sess.run(out
8、put, feed_dict=input1:3.0, input2:2.0)2021/3/916為什么使用計(jì)算圖(Graph)1.更加結(jié)構(gòu)化的體現(xiàn)計(jì)算過程2. 很利于我們提取中間某些節(jié)點(diǎn)的結(jié)果。3. 更重要的是,這個(gè)圖的結(jié)構(gòu)天生就是方便求導(dǎo)如果要求 dJ/da就只要:dj/dv * dv/da=3*1;2021/3/917TensorFlow訓(xùn)練神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu))()(bxwgzgaT2021/3/918神經(jīng)網(wǎng)絡(luò)激活函數(shù)Each successive layer uses the output from the previous layer as input.ReLu(Rectified Li
9、near Units)函數(shù)S形函數(shù) ( Sigmoid Function ):雙曲正切函數(shù)(tanh)2021/3/919神經(jīng)網(wǎng)絡(luò) softmax元素的Softmax值就是 :導(dǎo)2021/3/920神經(jīng)網(wǎng)絡(luò)優(yōu)化算法為:代價(jià)函數(shù)(lost function),損失函數(shù)其中y為期望的輸出,a為神經(jīng)元實(shí)際輸出。前向傳播算法反向傳播算法梯度梯度下降算法2021/3/921卷積神經(jīng)網(wǎng)絡(luò) 卷積層池化層2021/3/922卷積神經(jīng)網(wǎng)絡(luò)卷積層提取特征1, 2, 2, 1, padding = SAME#第1個(gè)參數(shù)對應(yīng)一個(gè)輸入batch; 第2個(gè)參數(shù)提供卷積層的權(quán)重;第3個(gè)參數(shù)為不同維度上的步長,其中第一維和最
10、后一維一定為1,因?yàn)榫矸e層的步長只對矩陣的長和寬有效;最后一個(gè)是填充方式。)*()(bxwgzga2021/3/923卷積神經(jīng)網(wǎng)絡(luò)池化層tf.nn.avg_pool# 參數(shù)和卷積函數(shù)類似 最大池化:tf.nn.max_pool池化有兩種: 一種是最大池化,在選中區(qū)域中找最大的值作為抽樣后的值; 一種是平均值池化,把選中的區(qū)域中的平均值作為抽樣后的值。2021/3/924卷積神經(jīng)網(wǎng)絡(luò)dropoutDropout暫時(shí)讓網(wǎng)絡(luò)某些隱含層節(jié)點(diǎn)的權(quán)重不工作實(shí)例代碼(片段)h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)keep_prob
11、= tf.placeholder(float) h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)2021/3/925MNIST 數(shù)字識(shí)別實(shí)例2021/3/926import tensorflow as tfimport tensorflow.examples.tutorials.mnist.input_data as input_datafrom tensorflow.python.framework import graph_utilmnist = input_data.read_data_sets(MNIST_data, one_hot=True)
12、# 下載并加載mnist數(shù)據(jù)x = tf.placeholder(tf.float32, None, 784, name=input) # 輸入的數(shù)據(jù)占位符y_ = tf.placeholder(tf.float32, shape=None, 10) # 輸入的標(biāo)簽占位符# 定義一個(gè)函數(shù),用于初始化所有的權(quán)值 Wdef weight_variable(shape): initial = tf.truncated_normal(shape, stddev=0.1) return tf.Variable(initial)# 定義一個(gè)函數(shù),用于初始化所有的偏置項(xiàng) bdef bias_variable
13、(shape): initial = tf.constant(0.1, shape=shape) return tf.Variable(initial)# 定義一個(gè)函數(shù),用于構(gòu)建卷積層def conv2d(x, W): return tf.nn.conv2d(x, W, strides=1, 1, 1, 1, padding=SAME)# 定義一個(gè)函數(shù),用于構(gòu)建池化層def max_pool(x): return tf.nn.max_pool(x, ksize=1, 2, 2, 1, strides=1, 2, 2, 1, padding=SAME)2021/3/927# 構(gòu)建網(wǎng)絡(luò)x_imag
14、e = tf.reshape(x, -1, 28, 28, 1) # 轉(zhuǎn)換輸入數(shù)據(jù)shape,以便于用于網(wǎng)絡(luò)中W_conv1 = weight_variable(5, 5, 1, 32)b_conv1 = bias_variable(32)h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1) # 第一個(gè)卷積層 g(w*x+b)h_pool1 = max_pool(h_conv1) # 第一個(gè)池化層W_conv2 = weight_variable(5, 5, 32, 64)b_conv2 = bias_variable(64)h_co
15、nv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2) # 第二個(gè)卷積層h_pool2 = max_pool(h_conv2) # 第二個(gè)池化層W_fc1 = weight_variable(7 * 7 * 64, 1024)b_fc1 = bias_variable(1024)h_pool2_flat = tf.reshape(h_pool2, -1, 7 * 7 * 64) # reshape成向量h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1) # 第一個(gè)全連接層keep
16、_prob = tf.placeholder(float,name=keep_prob)h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob) # dropout層W_fc2 = weight_variable(1024, 10)b_fc2 = bias_variable(10)y = tf.nn.softmax(tf.matmul(h_fc1_drop, W_fc2) + b_fc2, name=y) # softmax層cross_entropy = -tf.reduce_sum(y_ * tf.log(y) # 交叉熵train_step = tf.tr
17、ain.GradientDescentOptimizer(1e-3).minimize(cross_entropy) # 梯度下降法correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1)accuracy = tf.reduce_mean(tf.cast(correct_prediction, float) # 精確度計(jì)算輸入-卷積層-池化層-卷積層-池化層-全連接(dropout)-softmax2021/3/928# 迭代計(jì)算sess = tf.InteractiveSession()sess.run(tf.initialize_all_variables()for i in range(40000): batch = mnist.train.next_batch(50) if i % 100 = 0: # 訓(xùn)練100次,驗(yàn)證一次 train_acc = accuracy.eval(feed_dict=x: batch0, y_: batch1, keep_prob: 1.0) print(step %d, training accuracy %g % (i, train_acc) train_step.run(feed_dict=x: batch0, y_: bat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 領(lǐng)導(dǎo)結(jié)婚典禮簡短講話稿大全10篇
- 2024年工程共建合作協(xié)議書
- 環(huán)保設(shè)施改造招投標(biāo)資信證明
- 自建房屋地基施工合同
- 耐臭氧木地板安裝協(xié)議
- 影院裝修施工合同
- 詩歌朗誦會(huì)場地租賃協(xié)議
- 城市公園附近加油站改造合同
- 國際物流招投標(biāo)合同條款
- 供應(yīng)商產(chǎn)品設(shè)計(jì)優(yōu)化
- 科普類公園設(shè)計(jì)方案
- 小學(xué)英語就業(yè)能力展示
- 心肌病和心肌炎課件
- 《艾滋病毒》課件
- 平陽港區(qū)西灣作業(yè)區(qū)防浪導(dǎo)流堤工程海域使用論證報(bào)告書
- 管道保溫計(jì)算公式
- 錄音行業(yè)的就業(yè)生涯發(fā)展報(bào)告
- 報(bào)廢汽車拆解工藝流程
- 生化報(bào)告解讀
- 胃癌科普講座課件
- 熔煉車間工安全培訓(xùn)
評論
0/150
提交評論