精華區beta R_Language 關於我們 聯絡資訊
數據如下 No. x1 x2 x3 x4 y1 y2 1 -17.8 1.2 17.5 4.2 24.7 -56.4 2 -11.2 -3.7 0 14.4 -53.8 34.4 3 3.9 -5.7 20.9 7.8 18.3 22 4 4.2 -5.9 -10 -6.8 -47.5 43.3 5 -1.8 -13.8 -4.6 -10.4 -185.1 164.8 6 0 -3.4 10.6 6.1 8.2 8.5 ...共200筆有y1,y2 資料80筆未知y1,y2 參考網路使用mxnet 但目前都跑不出來 =.= 小弟目前找不到可以解的方法 也爬過文 希望有大大可以幫忙一下 Error in symbol$infer.shape(list(...)) : Error in operator dnn: Shape inconsistent, Provided=[200], inferred shape=[200,10] library(neuralnet) # for neuralnet(), nn model library(nnet) # for class.ind() library(xlsx) library(mxnet) #Load data Data_Path<-"D:/2019/W21/R/DM_Assignment_4_NN.xlsx" Data<-read.xlsx(file=Data_Path,sheetIndex=1 , header=T) Data<-na.omit(Data) #刪除沒有y1,y2的資料 str(Data) head(Data) Data<-as.matrix(Data) # 輸入層 data <- mx.symbol.Variable("data") # 第一隱藏層: 500節點,狀態是Full-Connected fc1 <- mx.symbol.FullyConnected(data, name="1-fc", num_hidden=500) # 第一隱藏層的激發函數: Relu act1 <- mx.symbol.Activation(fc1, name="relu1", act_type="relu") # 這裡引入dropout的概念 drop1 <- mx.symbol.Dropout(data=act1, p=0.5) # 第二隱藏層: 400節點,狀態是Full-Connected fc2 <- mx.symbol.FullyConnected(drop1, name="2-fc", num_hidden=500) # 第二隱藏層的激發函數: Relu act2 <- mx.symbol.Activation(fc2, name="relu2", act_type="relu") # 這裡引入dropout的概念 drop2 <- mx.symbol.Dropout(data=act2, p=0.5) # 輸出層:因為預測數字為0~9共十個,節點為10 output <- mx.symbol.FullyConnected(drop2, name="output", num_hidden=10) # Transfer the Evidence to Probability by Softmax-function dnn <- mx.symbol.LinearRegressionOutput(output, name="dnn") #分割資料 train.ind <- c(1:200) train.x = data.matrix(Data[train.ind, 2:5]) train.y1 = c(Data[train.ind, 6]) train.y2 = data.matrix(Data[train.ind, 7]) test.x = data.matrix(Data[-train.ind, 2:5]) test.y1 = data.matrix(Data[-train.ind, 6]) test.y2 = data.matrix(Data[-train.ind, 7]) mx.set.seed(0) # 訓練剛剛創造/設計的模型 dnn.model <- mx.model.FeedForward.create( dnn, # 剛剛設計的DNN模型 X=train.x, # train.x y=train.y1, # train.y ctx=mx.cpu(), # 可以決定使用cpu或gpu num.round=4, # iteration round array.batch.size=200, # batch size learning.rate=0.05, # learn rate momentum=0.9, # momentum array.layout = "rowmajor", eval.metric=mx.metric.accuracy, # 評估預測結果的基準函式* initializer=mx.init.uniform(0.07), # 初始化參數 epoch.end.callback=mx.callback.log.train.metric(100) ) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.237.92.93 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1559233757.A.B50.html
ching0629: output這層的num_hidden由10改成1 06/01 14:41
ching0629: 想好好學得話推薦一下: 06/01 14:42