欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python進階TensorFlow神經(jīng)網(wǎng)絡擬合線性及非線性函數(shù)

 更新時間:2021年10月16日 11:58:47   作者:_睿智_  
這篇文章是python進階學習主要介紹了TensorFlow神經(jīng)網(wǎng)絡擬合線性及非線性函數(shù)原理及示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助

一、擬合線性函數(shù)

學習率0.03,訓練1000次:

學習率0.05,訓練1000次:

學習率0.1,訓練1000次:

可以發(fā)現(xiàn),學習率為0.05時的訓練效果是最好的。

生成隨機坐標

1、生成x坐標

2、生成隨機干擾

3、計算得到y(tǒng)坐標

4、畫點

# 生成隨機點
def Produce_Random_Data():
    global x_data, y_data
    # 生成x坐標
    x_data = np.random.rand(100)
     # 生成隨機干擾
    noise = np.random.normal(0, 0.01, x_data.shape)
    #                       均值 標準差 輸出的形狀
     # 計算y坐標
    y_data = 0.2 * x_data + 0.3 + noise
     # 畫點
    plt.scatter(x_data, y_data)

神經(jīng)網(wǎng)絡擬合

1、創(chuàng)建神經(jīng)網(wǎng)絡

2、設置優(yōu)化器與損失函數(shù)

3、訓練(根據(jù)已有數(shù)據(jù))

4、預測(給定橫坐標,預測縱坐標)

# 創(chuàng)建神經(jīng)網(wǎng)絡(訓練及預測)
def Neural_Network():
    # 1 創(chuàng)建神經(jīng)網(wǎng)絡
    model = tf.keras.Sequential()
    # 為神經(jīng)網(wǎng)絡添加層
    model.add(tf.keras.layers.Dense(units=1, input_dim=1))
#                             隱藏層 神經(jīng)元個數(shù) 輸入神經(jīng)元個數(shù)
    # 2 設置優(yōu)化器與損失函數(shù)
    model.compile(optimizer=SGD(0.05), loss='mse')
#                 優(yōu)化器     學習率0.05  損失函數(shù)
# SGD:隨機梯度下降法
# mse:均方誤差
    # 3 訓練
    for i in range(1000):
        # 訓練數(shù)據(jù)并返回損失
        loss = model.train_on_batch(x_data, y_data)
        # print(loss)
     # 4 預測
    y_pred = model.predict(x_data)
     # 5 顯示預測結(jié)果(擬合線)
    plt.plot(x_data, y_pred, 'r-', lw=3)    #lw:線條粗細

代碼

# 擬合線性函數(shù)
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow.keras.optimizers import SGD 
# 生成隨機點
def Produce_Random_Data():
    global x_data, y_data
    # 生成x坐標
    x_data = np.random.rand(100) 
    # 生成隨機干擾
    noise = np.random.normal(0, 0.01, x_data.shape)
    #                       均值 標準差 輸出的形狀
     # 計算y坐標
    y_data = 0.2 * x_data + 0.3 + noise 
    # 畫點
    plt.scatter(x_data, y_data)
  
# 創(chuàng)建神經(jīng)網(wǎng)絡(訓練及預測)
def Neural_Network():
    # 1 創(chuàng)建神經(jīng)網(wǎng)絡
    model = tf.keras.Sequential()
    # 為神經(jīng)網(wǎng)絡添加層
    model.add(tf.keras.layers.Dense(units=1, input_dim=1))
#                             隱藏層 神經(jīng)元個數(shù) 輸入神經(jīng)元個數(shù)
    # 2 設置優(yōu)化器與損失函數(shù)
    model.compile(optimizer=SGD(0.05), loss='mse')
#                 優(yōu)化器     學習率0.05  損失函數(shù)
# SGD:隨機梯度下降法
# mse:均方誤差
     # 3 訓練
    for i in range(1000):
        # 訓練數(shù)據(jù)并返回損失
        loss = model.train_on_batch(x_data, y_data)
        # print(loss)
     # 4 預測
    y_pred = model.predict(x_data)
 
    # 5 顯示預測結(jié)果(擬合線)
    plt.plot(x_data, y_pred, 'r-', lw=3)    #lw:線條粗細 
# 1、生成隨機點
Produce_Random_Data()
 
# 2、神經(jīng)網(wǎng)絡訓練與預測
Neural_Network()
 
plt.show()

二、擬合非線性函數(shù)

第一層10個神經(jīng)元:

第一層5個神經(jīng)元:

我感覺第一層5個神經(jīng)元反而訓練效果比10個的好。。。

生成二次隨機點

步驟:

1、生成x坐標

2、生成隨機干擾

3、計算y坐標

4、畫散點圖

# 生成隨機點
def Produce_Random_Data():
    global x_data, y_data
    # 生成x坐標
    x_data = np.linspace(-0.5, 0.5, 200)[:, np.newaxis]
    #                                       增加一個維度
     # 生成噪聲
    noise = np.random.normal(0, 0.02, x_data.shape)
    #                       均值 方差 
    # 計算y坐標
    y_data = np.square(x_data) + noise 
    # 畫散點圖
    plt.scatter(x_data, y_data)

神經(jīng)網(wǎng)絡擬合

步驟:

1、創(chuàng)建神經(jīng)網(wǎng)絡

2、設置優(yōu)化器及損失函數(shù)

3、訓練(根據(jù)已有數(shù)據(jù))

4、預測(給定橫坐標,預測縱坐標)

5、畫圖

# 神經(jīng)網(wǎng)絡擬合(訓練及預測)
def Neural_Network():
    # 1 創(chuàng)建神經(jīng)網(wǎng)絡
    model = tf.keras.Sequential()
    # 添加層
    # 注:input_dim(輸入神經(jīng)元個數(shù))只需要在輸入層重視設置,后面的網(wǎng)絡可以自動推斷出該層的對應輸入
    model.add(tf.keras.layers.Dense(units=5,  input_dim=1, activation='tanh'))
#                                   神經(jīng)元個數(shù) 輸入神經(jīng)元個數(shù) 激活函數(shù)
    model.add(tf.keras.layers.Dense(units=1, activation='tanh')) 
    # 2 設置優(yōu)化器和損失函數(shù)
    model.compile(optimizer=SGD(0.3), loss='mse')
#                 優(yōu)化器     學習率     損失函數(shù)(均方誤差) 
    # 3 訓練
    for i in range(3000):
        # 訓練一次數(shù)據(jù),返回loss
        loss = model.train_on_batch(x_data, y_data) 
    # 4 預測
    y_pred = model.predict(x_data) 
    # 5 畫圖
    plt.plot(x_data, y_pred, 'r-', lw=5)

代碼

# 擬合非線性函數(shù)
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow.keras.optimizers import SGD 
# 生成隨機點
def Produce_Random_Data():
    global x_data, y_data
    # 生成x坐標
    x_data = np.linspace(-0.5, 0.5, 200)[:, np.newaxis]
    #                                       增加一個維度 
    # 生成噪聲
    noise = np.random.normal(0, 0.02, x_data.shape)
    #                       均值 方差 
    # 計算y坐標
    y_data = np.square(x_data) + noise 
    # 畫散點圖
    plt.scatter(x_data, y_data) 
# 神經(jīng)網(wǎng)絡擬合(訓練及預測)
def Neural_Network():
    # 1 創(chuàng)建神經(jīng)網(wǎng)絡
    model = tf.keras.Sequential() 
    # 添加層
    # 注:input_dim(輸入神經(jīng)元個數(shù))只需要在輸入層重視設置,后面的網(wǎng)絡可以自動推斷出該層的對應輸入
    model.add(tf.keras.layers.Dense(units=5, input_dim=1, activation='tanh'))
#                                   神經(jīng)元個數(shù)  輸入神經(jīng)元個數(shù) 激活函數(shù)
    model.add(tf.keras.layers.Dense(units=1, activation='tanh'))
    #                               輸出神經(jīng)元個數(shù) 
    # 2 設置優(yōu)化器和損失函數(shù)
    model.compile(optimizer=SGD(0.3), loss='mse')
#                 優(yōu)化器     學習率     損失函數(shù)(均方誤差) 
    # 3 訓練
    for i in range(3000):
        # 訓練一次數(shù)據(jù),返回loss
        loss = model.train_on_batch(x_data, y_data) 
    # 4 預測
    y_pred = model.predict(x_data)
    # 5 畫圖
    plt.plot(x_data, y_pred, 'r-', lw=5)
# 1、生成隨機點
Produce_Random_Data()
 
# 2、神經(jīng)網(wǎng)絡訓練與預測
Neural_Network()
 
plt.show()

以上就是python進階TensorFlow神經(jīng)網(wǎng)絡擬合線性及非線性函數(shù)的詳細內(nèi)容,更多關于TensorFlow神經(jīng)網(wǎng)絡擬合線性及非線性函數(shù)的資料請關注腳本之家其它相關文章!

相關文章

  • Python更改pip鏡像源的方法示例

    Python更改pip鏡像源的方法示例

    這篇文章主要介紹了Python更改pip鏡像源的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Python圖像處理之圖片文字識別功能(OCR)

    Python圖像處理之圖片文字識別功能(OCR)

    Tesseract 是一個OCR 庫,目前由Google 贊助(Google 也是一家以OCR 和機器學習技術聞名于世的公司)。這篇文章主要介紹了Python圖像處理之圖片文字識別功能 OCR的相關知識,需要的朋友可以參考下
    2019-07-07
  • python 批量解壓壓縮文件的實例代碼

    python 批量解壓壓縮文件的實例代碼

    這篇文章主要介紹了python 批量解壓壓縮文件的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • python實現(xiàn)simhash算法實例

    python實現(xiàn)simhash算法實例

    這篇文章主要介紹了python實現(xiàn)simhash算法實例,需要的朋友可以參考下
    2014-04-04
  • 詳解用python寫網(wǎng)絡爬蟲-爬取新浪微博評論

    詳解用python寫網(wǎng)絡爬蟲-爬取新浪微博評論

    這篇文章主要介紹了python爬取新浪微博評論,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 將Django框架和遺留的Web應用集成的方法

    將Django框架和遺留的Web應用集成的方法

    這篇文章主要介紹了將Django框架和遺留的Web應用集成的方法,Django是Python百花齊放的web開發(fā)框架中人氣最高的一個,需要的朋友可以參考下
    2015-07-07
  • python 調(diào)用釘釘機器人的方法

    python 調(diào)用釘釘機器人的方法

    今天小編就為大家分享一篇python 調(diào)用釘釘機器人的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python如何實現(xiàn)守護進程的方法示例

    Python如何實現(xiàn)守護進程的方法示例

    護進程:通常被定義為一個后臺進程,而且它不屬于任何一個終端會話(terminal session)。許多系統(tǒng)服務由守護程序?qū)嵤?;如網(wǎng)絡服務,打印等。 下面這篇文章給大家分享了Python是如何實現(xiàn)守護進程的方法示例,需要的朋友可以參考借鑒。
    2017-02-02
  • Python利用字典樹實現(xiàn)獵詞游戲

    Python利用字典樹實現(xiàn)獵詞游戲

    獵詞(word hunt)是一類很常見的游戲,給你一張字母組成的表,然后讓你在這些字母中盡可能多的去尋找單詞。這類游戲用字典樹就能輕松完成,本文就來具體講講實現(xiàn)步驟,需要的可以參考一下
    2022-06-06
  • pandas or sql計算前后兩行數(shù)據(jù)間的增值方法

    pandas or sql計算前后兩行數(shù)據(jù)間的增值方法

    下面小編就為大家分享一篇pandas or sql計算前后兩行數(shù)據(jù)間的增值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04

最新評論