摘要:此神經(jīng)網(wǎng)絡(luò)有個隱含層,每層個節(jié)點,個是一個預(yù)測類的后向反饋神經(jīng)網(wǎng)絡(luò),建立值用以量化某聲學(xué)設(shè)備設(shè)計方案的好壞和個設(shè)計尺寸的函數(shù)關(guān)系。導(dǎo)入依賴庫用以處理矩陣數(shù)據(jù),用以可視化,用以訓(xùn)練后向反饋神經(jīng)網(wǎng)絡(luò)。
我們正在研究如何用更廉價、更高效、魯棒性更好的方法對大寬度、大深度的神經(jīng)網(wǎng)路進(jìn)行調(diào)參(hidden layer的層數(shù),每層layer的節(jié)點,epochs,batch_size)。
無論如何,先構(gòu)建一個規(guī)模較大的神經(jīng)網(wǎng)絡(luò),要保證訓(xùn)練的時間(即使使用GPU計算)。
此神經(jīng)網(wǎng)絡(luò)有9個隱含層,每層400個節(jié)點,1450401個trainable parameters,是一個預(yù)測類的后向反饋神經(jīng)網(wǎng)絡(luò),建立feval值(用以量化某聲學(xué)設(shè)備設(shè)計方案的好壞)和15個設(shè)計尺寸的函數(shù)關(guān)系。
1.導(dǎo)入依賴庫
pandas用以處理矩陣數(shù)據(jù),matplotlib用以可視化,keras用以訓(xùn)練后向反饋神經(jīng)網(wǎng)絡(luò)。
import pandas as pd import matplotlib.pyplot as plt from keras.models import Sequential from keras.layers.core import Dense,Dropout, Activation from keras.utils.vis_utils import plot_model
2.導(dǎo)入EXCEL文件中的數(shù)據(jù)
定義輸入文件、輸出文件、模型參數(shù)保存文件的目錄;
讀取excel數(shù)據(jù),定義15個feature和1個Label;
截取前40000個example作為訓(xùn)練數(shù)據(jù)集。
inputfile = "Dataset.xlsx" outputfile = "output.xls" modelfile = "modelweight.model" data = pd.read_excel(inputfile,index="index",sheetname=0) feature = ["l1","l2","l3","l4","l5", "p1","p2","p3","p4","p5", "h1","h2","h3","h4","h5"] label = ["feval"] data_train = data.loc[range(0,40000)].copy()
3.將數(shù)據(jù)歸一化,提高訓(xùn)練效率
計算各個特征和標(biāo)簽的平均值和標(biāo)準(zhǔn)差,用來做線性變換將數(shù)據(jù)歸一化,并轉(zhuǎn)化為矩陣格式。
data_mean = data_train.mean() data_std = data_train.std() data_train = (data_train - data_mean)/data_std x_train = data_train[feature].as_matrix() y_train = data_train[label].as_matrix()
4.建立深度學(xué)習(xí)模型
Sequential類的模型,輸入層接受15個輸入,輸出到第一個隱藏層的400個神經(jīng)元中,其后9個隱藏層都接受400個輸入并產(chǎn)生400個輸出。輸入層和隱藏層都采用ReLu作為激活函數(shù),Dropout概率都為1%。
采用均方根誤差(mse)值作為loss value,優(yōu)化器使用adam。
打印summary,并將結(jié)構(gòu)圖保存為png文件。
model = Sequential() model.add(Dense(400,input_dim=15,kernel_initializer="uniform")) model.add(Activation("relu")) model.add(Dropout(0.01)) model.add(Dense(400,input_dim=400,kernel_initializer="uniform")) model.add(Activation("relu")) model.add(Dropout(0.01)) model.add(Dense(400,input_dim=400,kernel_initializer="uniform")) model.add(Activation("relu")) model.add(Dropout(0.01)) model.add(Dense(400,input_dim=400,kernel_initializer="uniform")) model.add(Activation("relu")) model.add(Dropout(0.01)) model.add(Dense(400,input_dim=400,kernel_initializer="uniform")) model.add(Activation("relu")) model.add(Dropout(0.01)) model.add(Dense(400,input_dim=400,kernel_initializer="uniform")) model.add(Activation("relu")) model.add(Dropout(0.01)) model.add(Dense(400,input_dim=400,kernel_initializer="uniform")) model.add(Activation("relu")) model.add(Dropout(0.01)) model.add(Dense(400,input_dim=400,kernel_initializer="uniform")) model.add(Activation("relu")) model.add(Dropout(0.01)) model.add(Dense(400,input_dim=400,kernel_initializer="uniform")) model.add(Activation("relu")) model.add(Dropout(0.01)) model.add(Dense(400,input_dim=400,kernel_initializer="uniform")) model.add(Activation("relu")) model.add(Dropout(0.01)) model.add(Dense(1,input_dim=400)) model.compile(loss="mean_squared_error", optimizer="adam") print(model.summary()) plot_model(model, to_file="bpnn_predict_model.png",show_shapes=True)
5.訓(xùn)練模型
迭代200次,每一次批量梯度下降使用256個樣本。
model.fit(x_train, y_train, epochs = 200, batch_size = 256)
最終loss值穩(wěn)定在0.0035左右
6.測試模型
將data數(shù)據(jù)歸一化后使用訓(xùn)練的模型預(yù)測tl值,并保存到excel文件中。
x = ((data[feature] - data_mean[feature])/data_std[feature]).as_matrix() data[u"feval_pred"] = model.predict(x) * data_std["feval"] + data_mean["feval"] data.to_excel(outputfile)
打印預(yù)測值(除去訓(xùn)練集樣本)并與真實值進(jìn)行對比。
plt.xlim(6000, 16000) plt.ylim(6000, 16000) plt.gca().set_aspect(1) plt.scatter(data["feval_pred"][40000:],data["feval"][40000:],s=1, c="b", marker=".") plt.show()
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/40785.html
摘要:目前,這些選擇又稱為超參數(shù)是通過經(jīng)驗,隨機搜索或計算密集型搜索過程來選擇的。該技術(shù)是超參數(shù)優(yōu)化最常用的兩種方法隨機搜索和手動調(diào)試的結(jié)合。隨機搜索中會并行訓(xùn)練神經(jīng)網(wǎng)絡(luò)的群體,并在訓(xùn)練結(jié)束時選擇較高性能的模型。 在圍棋和Atari游戲、圖像識別與語言翻譯等領(lǐng)域,神經(jīng)網(wǎng)絡(luò)都取得了巨大的成功。但經(jīng)常被忽視的一點是,神經(jīng)網(wǎng)絡(luò)在這些特定應(yīng)用中的成功往往取決于研究開始時做出的一系列選擇,包括:使用何種類型...
摘要:華為云,從到開發(fā)訓(xùn)練模型,通過極快和極簡實現(xiàn)普惠現(xiàn)如今技術(shù)概念火爆落地應(yīng)用更是繁多,但開發(fā)呢是否困難到底有多痛據(jù)了解,大部分開發(fā)者的工作時間并不長,并且十有八九可能不是科班出身。 華為云EI ModelArts,從0到1開發(fā)訓(xùn)練AI模型,通過極快和極簡實現(xiàn)普惠AI現(xiàn)如今 AI 技術(shù)、概念火爆、落地應(yīng)用更是繁多,但開發(fā)呢?是否困難?到底有多痛?據(jù)了解,大部分 AI 開發(fā)者的工作時間并不長...
閱讀 1368·2021-09-13 10:25
閱讀 552·2019-08-30 15:53
閱讀 2265·2019-08-30 15:44
閱讀 2026·2019-08-29 17:20
閱讀 1594·2019-08-29 16:36
閱讀 1795·2019-08-29 14:10
閱讀 1785·2019-08-29 12:44
閱讀 1166·2019-08-23 14:13