【发布时间】:2017-11-27 09:00:20
【问题描述】:
我正在尝试在字符级别训练一个文本数据集列表(例如,a cat => "a"、""、"c"、"a"、"t"),以便我可以分类他们非常准确。我在 R 中使用 mxnet 包(CNN 网络)并使用可丽饼模型。所以为了准备训练,我需要对训练和测试数据集进行迭代。所以代码如下:
train.iter <- CustomCSVIter$new(iter=NULL, data.csv=train.file.output,
batch.size=args$batch_size, alphabet=alphabet,
feature.len=feature.len)
test.iter <- CustomCSVIter$new(iter=NULL, data.csv=test.file.output,
batch.size=args$batch_size, alphabet=alphabet,
feature.len=feature.len)
data.csv 我有这些数据集,batch.size 只是一个整数,feature.len 也只是一个整数,字母表是字母数字引号的向量(abcd ...?!“”)。当我运行上面的代码时,我收到一条消息,说我有一个致命错误,Rstudio 崩溃并重新加载。我不知道我做错了什么。要运行上述代码,需要以下函数:
CustomCSVIter <- setRefClass("CustomCSVIter",
fields=c("iter", "data.csv", "batch.size",
"alphabet","feature.len"),
contains = "Rcpp_MXArrayDataIter",
methods=list(
initialize=function(iter, data.csv, batch.size,
alphabet, feature.len){
csv_iter <- mx.io.CSVIter(data.csv=data.csv,
data.shape=feature.len+1, #=features + label
batch.size=batch.size)
.self$iter <- csv_iter
.self$data.csv <- data.csv
.self$batch.size <- batch.size
.self$alphabet <- alphabet
.self$feature.len <- feature.len
.self
},
value=function(){
val <- as.array(.self$iter$value()$data)
val.y <- val[1,]
val.x <- val[-1,]
val.x <- dict.decoder(data=val.x,
alphabet=.self$alphabet,
feature.len=.self$feature.len,
batch.size=.self$batch.size)
val.x <- mx.nd.array(val.x)
val.y <- mx.nd.array(val.y)
list(data=val.x, label=val.y)
},
iter.next=function(){
.self$iter$iter.next()
},
reset=function(){
.self$iter$reset()
},
num.pad=function(){
.self$iter$num.pad()
},
finalize=function(){
.self$iter$finalize()
}
)
)
【问题讨论】:
标签: r deep-learning conv-neural-network mxnet