[問題]mxnet 進行分析出現錯誤

作者: savin (小馬克)   2019-05-31 00:29:15
數據如下
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)
)
作者: ching0629 (Syameroke)   2019-06-01 14:41:00
output這層的num_hidden由10改成1想好好學得話推薦一下:https://linchin.ndmctsgh.edu.tw/course.html

Links booklink

Contact Us: admin [ a t ] ucptt.com