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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

keras实现回归预测

發布時間:2024/1/8 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 keras实现回归预测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

機器學習小白一枚? 目前在做機器學習和光學的交叉? 希望各位大佬多多指正

背景:通過光纖結構的5個不同參數實現對其純凈度的預測

直接上圖

?我最終的目標是要實現通過圖中 k n L r?λ?這5個參數? 實現對每個模式的purity? Aeff? dispersion?以及keer這四個參數的預測? ? 那么這篇文章只做一個簡單的對其中purity參數的預測? 具體最終的多維度預測我會在接下來的文章中更新...

? 進入代碼

首先就是對數據集的一個讀取? 然后創建兩個數組分別承載他們

這個代碼就是給他轉化成一個np數組然后進行一個預處理? ? 數據分割那塊根據自己的數據集自行決定? ?像我最后的數據集的話可能直接分成了兩個文件? 就不需要在代碼內給他們分割?

一個簡單的網絡架構? ?這里他的輸入維度是隱式包含在第一個Dense層里? 我得輸入維度有5個就設置為5? 第一個全連接層也設置為5?然后再搭一個Dense和一個output (這塊可以根據你自己的需要去調整? 因為對于回歸預測來說的話可能并不需要太復雜的結構? 當然如果你想提高一下模型的擬合能力和泛化效果的話可以加深網絡層數? 但也不是越多越好? 要根據你自己的網絡結構去調試)

下面compile函數就是進行一個擬合?這里選用Adam優化? 學習率設置為0.0001? 損失函數用mse? 評價函數用mae(對于mse?和?mae?這兩個函數可以自行抉擇? 因為看了好多回歸的網絡基本上用的都是這兩個? 甚至有的根本不需要評價函數? 直接上損失就夠了)?

自后fit函數? batchsize和epochs次數也是根據自己決定? bitchsize根據自己電腦計算能力?可以盡可能調小? ?validation_split是一個動態分配訓練集? 比如我設置的是0.2?就是動態分配20%的訓練數據作為測試? 主要目的是為了更直觀的防止一個過擬合問題的出現? verbose就是迭代過程中的詳細程度? 主要有0 1 2? 根據自己需求設置

預測部分代碼? 和最開始對訓練數據的處理差不多

最后是完整代碼

import osimport xlrd import xlwt import numpy as np from random import randint from sklearn.utils import shuffle from sklearn.preprocessing import MinMaxScaler, StandardScaler import tensorflow as tf from tensorflow import keras from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Activation,Dense from tensorflow.keras.optimizers import Adam from tensorflow.keras.metrics import categorical_crossentropy import matplotlib.pyplot as plt# data = xlrd.open_workbook('puity.xlsx') # sheet = data.sheet_by_index(0) #row1 = sheet.row_values(1) #行 #col1 = sheet.col_values(3) #列 #cell = sheet.cell(1,1).valueimport tensorflow as tf print("Num GPUS Available:",len(tf.config.experimental.list_physical_devices('GPUs'))) os.environ["CUDA_VISIBLE_DEVICES"]="0"data = xlrd.open_workbook('puity_train.xlsx') sheet = data.sheet_by_index(0) nrows = sheet.nrows #行數 ncols = sheet.ncols #列數samples = [] #訓練樣本 labels = [] #對應標簽for i in range(nrows):row = sheet.row_values(i)samples.append(row[0:5])labels.append(row[12])from sklearn.model_selection import train_test_split train_samples,test_samples,train_labels,test_labels =train_test_split(samples,labels,random_state = 0,test_size = 0.20)train_labels=np.array(train_labels) train_samples=np.array(train_samples) test_samples=np.array(test_samples) test_labels=np.array(test_labels) # #亂序 train_labels,train_samples=shuffle(train_labels,train_samples)# print(train_samples) # print(test_samples)#數據預處理 scaler = StandardScaler() train_samples = scaler.fit_transform(train_samples) test_samples = scaler.fit_transform(test_samples) # # print(train_samples) # # print(train_labels) # print(test_samples) # # print(test_labels)# # scaler = MinMaxScaler(feature_range=(0,1)) # scaled_train_samples = scaler.fit_transform(np.array(train_samples).reshape(-1,1))model = Sequential([Dense(units=5,input_shape=(5,),activation='relu'),Dense(units=32,activation='relu'),Dense(units=1)]) # # #可視化網絡模型 model.summary() # model.compile(optimizer=Adam(learning_rate=0.0001),loss='mse', metrics='mae')# # # # # 參數 validation_split=0.2 動態分配20%的訓練集作為測試 防止出現過擬合問題 history = model.fit(x=train_samples,y=train_labels,validation_split=0.2,batch_size=64,epochs=2000,shuffle=True,verbose=2) # mae = history.history['mae'] # val_mae = history.history['val_mae'] # loss = history.history['loss'] # val_loss = history.history['val_loss'] # epochs = range(1, len(loss) + 1) # # acc = history.history['acc'] # 獲取訓練集準確性數據 # # val_acc = history.history['val_acc'] # 獲取驗證集準確性數據 # loss = history.history['loss'] # 獲取訓練集錯誤值數據 # val_loss = history.history['val_loss'] # 獲取驗證集錯誤值數據 # epochs = range(1, len(loss) + 1) # # plt.figure() # 創建一個新的圖表 # plt.plot(epochs, loss, 'bo', label='Trainning loss') # plt.plot(epochs, val_loss, 'b', label='Vaildation loss') # plt.legend() ##繪制圖例,即標明圖中的線段代表何種含義 # # plt.show() # 顯示所有圖表 mae = history.history['mae'] val_mae = history.history['val_mae'] loss = history.history['loss'] val_loss = history.history['val_loss'] epochs = range(1, len(loss) + 1) plt.figure() # 創建一個新的圖表 plt.plot(epochs, loss, label='Trainning loss mse',color="blue",linewidth=0.3,linestyle='-.') plt.plot(epochs, val_loss, label='Vaildation loss mse',color="blue",linewidth=0.3,linestyle='--') #預測test_labels,test_samples = shuffle(test_labels,test_samples) print(test_samples) print(test_labels) predictions = model.predict(x=test_samples,batch_size=32,verbose=0) for i in predictions:print(i)x = np.linspace(0,1000,800) y1 = test_labels y2 = predictions plt.figure() plt.plot(x,y1,label='test labels') plt.plot(x,y2,label='predict labels',color="red",linewidth=1.0,linestyle='--') plt.show()

?

?

總結

以上是生活随笔為你收集整理的keras实现回归预测的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产三级三级三级 | 毛片网止 | 中文永久免费观看 | 视色视频在线观看 | 色老久久 | 色窝窝无码一区二区三区成人网站 | 三级影片在线播放 | 欧美啪啪一区二区 | 在线观看wwww | 成人a毛片久久免费播放 | 天堂中文在线资源 | 国产日韩在线播放 | 一级做a爰 | 国产精品激情 | 最新三级网站 | 影音先锋日韩资源 | 四虎永久网站 | 国产av无码专区亚洲精品 | 亚洲天堂免费看 | 天天看天天摸天天操 | av免费成人| 亚洲美女福利 | 美女在线观看视频 | 美女张开腿让人桶 | 亚洲天堂首页 | 青青青青草 | 中文字幕理伦片免费看 | 亚洲国产日韩欧美在线观看 | av网站久久| 国产精品水嫩水嫩 | 亚洲综合激情网 | 黄色网免费看 | 色在线看 | 欧美乱论 | 亚洲欧美国产高清 | 久久影院一区 | 国产精品秘入口18禁麻豆免会员 | 三年中文在线观看中文版 | 亚洲成人网在线观看 | 波多野结衣一二区 | 先锋av资源在线 | 韩日激情视频 | 色屁屁一区二区三区 | 欧美不卡在线观看 | 欧美大浪妇猛交饥渴大叫 | 国产黄片毛片 | 自拍av在线 | 欧美成年人在线视频 | 狠狠干2021| 日韩精品视频在线 | 国产超碰精品 | 久久精品波多野结衣 | 久久无码人妻丰满熟妇区毛片 | 91网站视频在线观看 | mm1313亚洲国产精品无码试看 | 国产成人精品在线视频 | 日韩av午夜 | 久久福利视频网 | 欧美a级片在线观看 | 亚洲综合av一区二区 | 国产女主播在线 | 日韩在线1 | 免费在线看黄色 | 精品国产不卡 | 免费看h网站 | 日韩精品视频在线 | 影音先锋中文字幕在线 | 美女高潮黄又色高清视频免费 | 在线免费观看你懂的 | aaa毛片视频 | 一区二区xxx| 色欲欲www成人网站 老色鬼av | 人人草在线视频 | 90岁老太婆乱淫 | 激情小说专区 | 亚洲精品播放 | 91久久精品在线 | 韩国伦理片在线观看 | 狠狠艹视频 | 超碰成人97 | 337p日本欧洲亚洲大胆张筱雨 | 国产精品传媒在线观看 | 日韩a√ | www操操操 | 处破女av一区二区 | 中文字幕一区二区精品 | 娇小6一8小毛片 | 91免费看. | 色无极在线| 久久久久免费观看 | 潘金莲一级淫片a.aaaaa播放 | 精品一区二区三区免费毛片 | 国产人妻人伦精品1国产盗摄 | 极品尤物魔鬼身材啪啪仙踪林 | 日本黄网免费 | 亚洲av永久无码精品一区二区国产 | 中文字幕av二区 | 色视频线观看在线播放 | 日韩成人在线播放 |