TensorFlow --- 建立第一個模型
深度學習的四個步驟
(1)準備資料
(2)搭建模型
(3)迭代訓練
(4)使用模型
1.準備資料
這裡使用y=2x為主體,通過加入一些干擾噪聲讓它的等號變成約等於
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt # np.linspace()函式。在指定的間隔內返回均勻間隔的數字 train_X = np.linspace(-1, 1, 100) # Y的值。 # np.random.randn(*train_X.shape) 等價與np.random.randn(100) train_Y = 2 * train_X + np.random.randn(*train_X.shape) * 0.3 # 顯示資料 plt.plot(train_X, train_Y, 'ro', label='Original data') # 顯示圖例 plt.legend() plt.show()
2.搭建模型
(1)正向搭建模型
# x和y為佔位符,一個代表x的輸入;另一個代表對應的真實值y X = tf.placeholder('float') Y = tf.placeholder('float') # 模型引數。w被初始化程[-1,1]的隨機數,b的初始化為0,都是一維的數字 W = tf.Variable(tf.random_normal([1]), name='weight') <tf.Variable 'weight:0' shape=(1,) dtype=float32_ref> b = tf.Variable(tf.zeros([1]), name='bias') <tf.Variable 'bias:0' shape=(1,) dtype=float32_ref> # 前向結構 # tf.multiply()函式。兩個數相乘 z = tf.multiply(X, W) + b
(2)反向搭建模型
# 反向優化
# 定義一個cost,等於生成值與真實值的平方差
cost = tf.reduce_mean(tf.square(Y - z))
# 定義一個學習率,代表調整引數的速度
# 值越大,表示調整的速度越快,但不精確;值越小,表示調整的速度越慢,但精度高
learning_rate = 0.01
# GradientDescentOptimizer()。是一個封裝好的梯度下降函式
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
3迭代訓練
(1)訓練模型
# 初始化所有變數 init = tf.global_variables_initializer() # 定義引數 training_epochs = 20 display_step = 2 # 啟動session with tf.Session() as sess: sess.run(init) # 存放批次值和損失值 plotdata = {"batchsize":[], "loss":[]} 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)) if not (loss == "NA"): plotdata["batchsize"].append(epoch) plotdata["loss"].append(loss) print("Finished!") print("cost=", sess.run(cost, feed_dict={X:train_X, Y:train_Y}), "w=", sess.run(w), "b=", sess.run(b))
(2)訓練模型視覺化
plotdata = {'batchsize':[], 'loss':[]}
def moving_average(a, w=10):
if len(a) < w:
return a[:]
return [val if idx < w else sum(a[(idx-w:idx)])/w for idx, val in enumerate(a)]
plt.plot(train_X, train_Y, 'ro', label='Original data')
plt.plot(train_X, sess.run(W) * train_X + sess.run(b), label='Fittedline')
plt.legend()
plt.show()
pltdata['avgloss'] = moving_average(plotdata['loss'])
plt.figure(1)
plt.subplot(211)
plt.plot(plotdata['batchsize'], plotdata['avgloss'], 'b--')
plt.xlabel('Minibatch number')
plt.ylabel('Loss')
plt.title('Minbatch run vs. Training loss')
plt.show()
4.使用模型
print('x=0.2, z=', sess.run(z, feed_dict={X:0.2}))
結果為:
x=0.2, z= [0.4408053]
相關推薦
TensorFlow --- 建立第一個模型
深度學習的四個步驟 (1)準備資料 (2)搭建模型 (3)迭代訓練 (4)使用模型 1.準備資料 這裡使用y=2x為主體,通過加入一些干擾噪聲讓它的等號變成約等於 import tenso
用TensorFlow訓練第一個模型
簡述 下面有非常詳細的程式碼註釋 這裡的create資料的時候,其實就是建立了一個很簡單的模型,就是說,一條y= 0.1x+0.3的直線。 然後,我們建立了兩個變數,通過梯度下降的方式,不斷迭代,就可
Tensorflow搭建第一個邏輯迴歸(logistic regression,其實也就是單層感知機)模型
資料集: 使用吳恩達機器學習課程:https://study.163.com/course/courseMain.htm?courseId=1004570029 章節8中的課時60:程式設計作業:Logistic迴歸的資料中的資料集ex2data1.txt(訓練集)和ex2data2.t
識別貓的單隱藏層神經網絡(我的第一個模型)
負數 所有 sha 分類 col 缺少 right shadow 一個 摘要:算法詳解;代碼;可視化查看超參數影響 目標:識別一張圖是不是貓 數據集:訓練數據209張64*64 測試數據50張 64*64 方案:二分分類法 算法:logistic回歸 ,
微服務分散式事務實戰(五)準備資料庫和建立第一個微服務
1)資料庫準備 在資料庫中mysql 分別建立2個數據庫forum1和forum2 forum1 下建立表block forum2下建立表Theme sql程式碼如下: 1 資料庫1Forum1: CREATE DATABASE IF NOT EXISTS forum1; USE forum
(一)MFC學習之建立第一個視窗
環境:windows10+vs2017 需要兩個類: 1,CMyWnd,繼承自CFrameWnd(視窗框架類,視窗有就是這個類的例項化物件) 2,CMyApp,繼承自CWinApp(app類,在這個類中的InitInstance方法中例項化視窗,初始化自己的視窗型別成員變數) 使
(django)4建立第一個檢視
建立檢視 開啟 demo 應用下的 views.py 檔案,新增程式碼 from django.http import HttpResponse from django.shortcuts import render # Create your views here. def index(reque
IOS初學-建立第一個專案
建立屬於自己的第一個專案 1.使用XCode9開發 2.使用Swift4 一.建立新的專案 點選XCode開發工具 這裡建立的是IOS專案 &nb
使用VS建立第一個窗體應用程式
首先安裝好VS 安裝好VS,還需安裝相關的工具,開啟VS,在工具欄裡選獲取工具和更新 選.net桌面開發,然後點修改,等安裝完 安裝好後,開啟VS,選擇檔案--新建--新建專案
【手把手擼一個腳手架】第一步, 建立第一個命令
WTF 不知道腳手架是啥? 那抓緊惡補一下前端基礎把兄die, 相信不久的以後你就會回來的. ps: 本文檔案操作基於 bash, mac 同學直接用 terminal 或 iterm 即可, win 使用者推薦使用 git bash 腳手架, 源自於建築行業, 通俗的講就是一個專
TensorFlow 載入多個模型的方法
採用 TensorFlow 的時候,有時候我們需要載入的不止是一個模型,那麼如何載入多個模型呢? 原文:bretahajek.com/2017/04/imp… 關於 TensorFlow 可以有很多東西可以說。但這次我只介紹如何匯入訓練好的模型(圖),因為我做不到匯入第二個模型並將它和第一個模型
android studio教程-建立第一個專案Hello World
更多知識-程式猿:apeit 在前面文章講了android開發環境的部署,那麼我們用hello world和android studio打聲招呼吧! 第一步,開啟android studio 輸入你的專案名稱“Hello World”. “Company Domian”:暫時你就隨便填
vue入門(一)安裝及建立第一個專案
前端近幾年來飛速發展,各種技術框架層出不窮,架構模式也從主流MVC慢慢轉向MVVM。使用AngularJS、React和Vue.js等框架進行前端開發已經成為趨勢。因此我也開始了vue.js的修煉之路(之所以選擇vue.js是因其入門門檻低)。 一、安裝 為了讓我們建立Vue專案更加容易,我
【3】Django建立第一個專案
天地所以能長且久者,以其不自生,故能長生。 ——老子《道德經》 寫在前面:Django在學習的過程中,我們會參考官方文件,從兩部分進行講解,第一部分主要是一個入門專案的搭建開發,第二部分是核心的講解。過程中可能會有一些配置或者技術點不會明確的講解,入門專案要求是能寫出程式碼、能跟著文件寫出專案,能瞭解
【4】Django 建立第一個模組應用
大成若缺,其用不弊。大盈若衝,其用不窮。大直若屈。大巧若拙。大辯若訥。靜勝躁,寒勝熱。清靜為天下正 ——老子《道德經》 本章內容 建立應用(app) 開發第一個檢視(View) URL訪問配置的巢狀(urls) 1. 建立專案的子模組應用 上一節內容中,我們建立了一個django專
[Django_1]建立第一個專案
1、安裝 pip install Django 2、檢視版本號 django-admin --version 輸出了版本號說明安裝正確 3、建立第一個專案 django-admin.py startproject HelloDjango tree-不顯示
用Tensorflow搭建第一個神經網路
簡述 搭建這個神經網路 其實是從一個層到10層再到10層的這樣的一個神經網路。(畫圖醜。。。求諒解。。就別私戳了) 解析 初始的輸入的矩陣為:[[1],300個,[-1]] 大致這樣的 在增加一層的那個函式中,最為經典的地方是,偏置(biases)的第一個
tensorflow之第一個專案MNIST資料集
首先登陸網址: http://yann.lecun.com/exdb/mnist/ 下載4個檔案 下載完之後,解壓出來到資料夾 耐心等待,網上好慢。 放到當前的路徑下: 檢視資料集驗證圖片 檢視資料集的驗證標籤 檢視資料集的測試圖片
vuejs環境搭建及建立第一個專案
一、vuejs環境搭建 vuejs的執行是基於node和git的所以在安裝Vuejs時要先安裝著兩個軟體才能成功安裝vuejs。 1、node安裝 在node官網下載node安裝軟體,下載完成後軟體如下 ,雙擊安裝軟體,安裝完成後開啟cmd,執行node -v驗證是否成功安裝
C++ STM32 程式設計 003 使用CubeMX建立第一個程式
GPIO是stm32的基礎,單獨時間點上,每個GPIO都可以作為輸出,或輸入,或中斷,或特殊功能使用(特殊功能是指系統預設的功能使用引腳),每個時間點上,只能使用一種方式。 首先,我們