python應用之基於tensorflow的數據擬合:深度學習之預測入門篇

2021-01-11 跳動的雞毛撣子

實驗目的:1、了解python在深度學習領域的應用

2、學習安裝python第三方依賴庫

實驗環境:已正確安裝python3.5以及依賴庫tensorflow、matplotlib

預測過程展示:

1、應用領域

python是一種高級面向對象的動態類型語言,具有開發高效,學習簡單的特點,主要應用於大數據、深度學習、機器學習、以及Web開發等領域,具有良好的發展前景。

2、依賴庫的安裝方法

(1)在線直接安裝

在命令行模式下利用pip命令安裝,命令格式:pip install XXX,如:

pip install tensorflow#安裝tensorflow第三方依賴庫

pip install matplotlib#安裝matplotlib第三方依賴庫

(2)離線安裝

離線安裝適用於網絡較差時,可以在https://pypi.org/處搜索下載安裝包,然後在命令 行切換到安裝包目錄利用pip命令安裝。

3、原始數據準備

在訓練深度學習模型之前必須轉備好訓練數據,本文以y=2x為訓練目標進行實驗:

import numpy as np #導入數值計算模塊

import matplotlib.pyplot as plt#導入畫圖模塊

#準備數據

train_x=np.linspace(-1,1,100)#生成1*100的數組

train_y=2*train_x+np.random.randn(*train_x.shape)*0.5#生成訓練數據時加入了噪聲

#數據以圖片展示

fig=plt.figure()

ax=fig.add_subplot(1,1,1)

ax.scatter(train_x,train_y)

ax.plot(train_x,train_y,'r*',label='Original Data')

plt.legend()

plt.ion()

plt.show()

編輯好以上代碼後,運行生成的結果如圖

4、搭建訓練模型

搭建訓練模型是深度學習比較重要的一個環節,簡單的說它是一個運算規則,本文以一個神經元為例搭建計算模型。

X=tf.placeholder("float")#定義佔位符,作用:輸入訓練值

Y=tf.placeholder("float")#定義佔位符,作用:輸入標準值

W=tf.Variable(tf.random_normal([1]),name="weight")#定義權重

b=tf.Variable(tf.zeros([1]),name="bias")#定義偏執,類似於噪聲

z=tf.multiply(X,W)+b#定義計算結構之前向結構

在定義好計算結構之後,需要定義優化規則

cost=tf.reduce_mean(tf.square(Y-z))#定義以訓練值與預測值的均方根誤差為評判準則

learn_rate=0.01#定義學習率

optimizer=tf.train.GradientDescentOptimizer(learn_rate).minimize(cost)#定義訓練方法(以梯度下降的方法進行訓練,以誤差:cost達到最小為目標)

5、模型訓練

上一步驟就類似於畫出了計算規則的藍圖,但是其並未進行運算,需要初始化變量、定義會話並在會話中利用run()方法啟動圖的運算,這也是tensorflow的一個特點

init=tf.global_variables_initializer()#定義初始化變量的對象

training_epochs=25#定義迭代訓練次數

display_step=2#定義可視化步長

with tf.Session() as sess:#定義會話

sess.run(init)

for epoch in range(training_epochs):

for (x,y) in zip(train_x,train_y):

sess.run(optimizer,feed_dict={X:x,Y:y})

if epoch % display_step == 0:

loss = sess.run(cost,feed_dict={X:train_x,Y:train_y})

print("Epoch:",epoch+1,"cost=",loss,"W=",sess.run(W),"b=",sess.run(b))

#動態可視化定義

try:

ax.lines.remove(lines[0])#先抹除舊線再去畫新線

except Exception:

pass

lines=ax.plot(train_x,train_x*sess.run(W)+sess.run(b),'b-',label='pridect Data')

plt.pause(8)

plt.legend()

預測結果圖
預測過程參數輸出

相關焦點

  • Tensorflow 全網最全學習資料匯總之Tensorflow 的入門與安裝【2】
    《TensorFlow學習筆記1:入門》連結:http://www.jeyzhang.com/tensorflow-learning-notes.html本文與上一篇的行文思路基本一致,首先概括了TensorFlow的特性,然後介紹了graph、session、variable 等基本概念的含義,以具體代碼的形式針對每個概念給出了進一步的解釋
  • 最熱門的深度學習框架TensorFlow入門必備書籍
    但進入機器學習和人工智慧領域並不是一件簡單的事情,目前市場上有許多大量的學習資源,許多開發者和想要進入的愛好者往往很難找到適合自己的發展路徑。其實,早在 2015 年底,谷歌就開源了內部使用的深度學習框架 TensorFlow 。眾多研究表明,Tensorflow 是研究深度學習的首選平臺。
  • TensorFlow極速入門
    作者孟曉龍,2016年加入Qunar,目前在去哪兒網機票事業部擔任算法工程師。熱衷於深度學習技術的探索,對新事物有著強烈的好奇心。一、前言目前,深度學習已經廣泛應用於各個領域,比如圖像識別,圖形定位與檢測,語音識別,機器翻譯等等,對於這個神奇的領域,很多童鞋想要一探究竟,這裡拋磚引玉的簡單介紹下最火的深度學習開源框架 tensorflow。
  • 最簡單的深度學習TensorFlow應用舉例!
    小編最近準備入坑TensorFlow,沒系統的學python,想邊學tf順便一起學python,花很多時間配了環境,今天終於要拿出來曬曬太陽了~這裡為大家帶來了TensorFlow的最簡單的例子。小編我的電腦很一般,沒有32G內存,也沒有1080,就windows上直接裝了23333windows+python 3.6+pycharm+tensorflow cpu話不多說,直接線性回歸,上圖。
  • 第85講 Python深度學習之圖像識別
    Python在機器學習(人工智慧,AI)方面有著很大的優勢。
  • Python深度學習之圖像識別
    作者 | 周偉能 來源 | 小叮噹講SAS和Python Python在機器學習(人工智慧,AI)方面有著很大的優勢。談到人工智慧,一般也會談到其實現的語言Python。前面有幾講也是關於機器學習在圖像識別中的應用。今天再來講一個關於運用google的深度學習框架tensorflow和keras進行訓練深度神經網絡,並對未知圖像進行預測。
  • TensorFlow 資源大全中文版
    節點(Nodes)在圖中表示數學操作,圖中的線(edges)則表示在節點間相互聯繫的多維數據數組,即張量(tensor)。它靈活的架構讓你可以在多種平臺上展開計算,例如臺式計算機中的一個或多個CPU(或GPU)、伺服器、行動裝置等等。
  • TensorFlow與PyTorch之爭,哪個框架最適合深度學習
    選自builtin作者:Vihar Kurama機器之心編譯參與:吳攀、杜偉谷歌的 Tensorflow 與 Facebook 的 PyTorch 一直是頗受社區歡迎的兩種深度學習框架。那麼究竟哪種框架最適宜自己手邊的深度學習項目呢?本文作者從這兩種框架各自的功能效果、優缺點以及安裝、版本更新等諸多方面給出了自己的建議。如果你在讀這篇文章,那麼你可能已經開始了自己的深度學習之旅。如果你對這一領域還不是很熟悉,那麼簡單來說,深度學習使用了「人工神經網絡」,這是一種類似大腦的特殊架構,這個領域的發展目標是開發出能解決真實世界問題的類人計算機。
  • 【強化學習實戰】基於gym和tensorflow的強化學習算法實現
    1新智元推薦【新智元導讀】知乎專欄強化學習大講堂作者郭憲博士開講《強化學習從入門到進階》,我們為您節選了其中的第二節《基於gym和tensorflow的強化學習算法實現》,希望對您有所幫助。同時,由郭憲博士等擔任授課教師的深度強化學習國慶集訓營也將於 10 月 2 日— 6 日在北京舉辦。
  • TensorFlow 2入門指南,初學者必備!
    英語原文:Getting Started with TensorFlow 2翻譯:雷鋒字幕組(贇瑾和鳴、大表哥)什麼是Tensorflow?TensorFlow是谷歌推出的深度學習框架,於2019年發布了第二版。 它是世界上最著名的深度學習框架之一,被行業專家和研究人員廣泛使用。
  • 基於TensorFlow2.0的中文深度學習開源書來了!GitHub趨勢日榜第一
    十三 發自 凹非寺 量子位 報導 | 公眾號 QbitAITensorFlow 2.0 發布已有一個半月之久,你會用了嗎?近日,一個叫做深度學習開源書的項目在火了。因為這是一本基於TensorFlow 2.0 正式版的中文深度學習開源書。還包含電子書和配套原始碼。話不多說,一起來看看這本爆款書籍吧!
  • 分享TensorFlow Lite應用案例
    輸入法引擎預測效果圖   作為輸入法這樣的一個重度使用的工具類 APP,在移動端做輕量化部署非常重要,具體包括以下四個方面:模型壓縮、快速的響應時間、較低的內存佔用以及 較小的 so 庫(shared object,共享庫)大小等。
  • 深度解讀TensorFlow,了解它的最新發展!
    Tensorboard是tensorflow內置的一個可視化工具,它通過將tensorflow程序輸出的日誌文件的信息可視化,使得tensorflow程序的理解、調試和優化更加簡單高效。Tensorboard的可視化依賴於tensorflow程序運行輸出的日誌文件,因而tensorboard和tensorflow程序在不同的進程中運行。
  • 深度學習筆記8:利用Tensorflow搭建神經網絡
    作者:魯偉 一個數據科學踐行者的學習日記。
  • 乾貨| 請收下這份2018學習清單:150個最好的機器學習,NLP和Python...
    NLP基於深度學習的NLP應用(arxiv.org)https://arxiv.org/pdf/1703.03091.pdf基於深度學習的NLP(Richard Socher)https://nlp.stanford.edu/courses/NAACL2013/NAACL2013-Socher-Manning-DeepLearning.pdf
  • ...請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    NLP基於深度學習的NLP應用(arxiv.org)https://arxiv.org/pdf/1703.03091.pdf基於深度學習的NLP(Richard Socher/嵌入表示,編碼,注意力,預測 : 新一代深度學習因NLP的精妙而存在(explosion.ai)https://explosion.ai/blog/deep-learning-formula-nlp理解基於神經網絡的自然語言處理
  • 基於TensorFlow 、OpenCV 和 Docker 的實時視頻目標檢測
    Docker在數據科學中的應用我不在這裡描述 Tensorflow 目標檢測 API 的實現,因為相關的文檔很多。我將展示數據科學家在日常工作中如何使用 Docker。注意,我會使用 Tensorflow 的經典 ssd_mobilenet_v2_coco 模型來提高性能。
  • 教程| 如何用TensorFlow在安卓設備上實現深度學習推斷
    對於個人和公司來說,存在許多狀況是更希望在本地設備上做深度學習推斷的:想像一下當你在旅行途中沒有可靠的網際網路連結時,或是要處理傳輸數據到雲服務的隱私問題和延遲問題時。邊緣計算(Edge computing)是一種在物理上靠近數據生成的位置從而對數據進行處理和分析的方法,為解決這些問題提供了方案。
  • TensorFlow 攜手 NVIDIA,使用 TensorRT 優化 TensorFlow Serving...
    TensorFlow Serving 是應用於機器學習模型的靈活的高性能服務系統,而 NVIDIA TensorRT 則是一個用以實現高性能深度學習推理的平臺,將二者相結合後,用戶可以輕鬆地實現最佳性能的 GPU 推理。
  • 乾貨 | 請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    NLP基於深度學習的NLP應用(arxiv.org)https://arxiv.org/pdf/1703.03091.pdf 基於深度學習的NLP(Richard Socher)https://nlp.stanford.edu/courses/NAACL2013/NAACL2013-Socher-Manning-DeepLearning.pdf