scotty3005 opened a new issue #14863: mxnet csv iterator error URL: https://github.com/apache/incubator-mxnet/issues/14863 ## Description Running mxnet on R after 50-60 iterations I get the error message posted here below. I am using the custom iterator posted in the code session. I encoutered other discussion about it but I could not figure out if there has been a solution. R `sessionInfo()`: R version 3.5.2 (2018-12-20) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Debian GNU/Linux 9 (stretch) Matrix products: default BLAS: /usr/lib/openblas-base/libblas.so.3 LAPACK: /usr/lib/libopenblasp-r0.2.19.so locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] mxnet_1.5.0 bigrquery_1.1.0.9000 [4] data.table_1.12.2 xgboost_0.81.0.1 loaded via a namespace (and not attached): [1] tidyselect_0.2.5 Rook_1.1-1 purrr_0.3.2 lattice_0.20-38 [5] colorspace_1.4-1 htmltools_0.3.6 viridisLite_0.3.0 XML_3.98-1.19 [9] rlang_0.3.4 pillar_1.3.1 glue_1.3.1 DBI_1.0.0 [13] bit64_0.9-7 RColorBrewer_1.1-2 plyr_1.8.4 stringr_1.4.0 [17] munsell_0.5.0 gtable_0.3.0 visNetwork_2.0.6 htmlwidgets_1.3 [21] codetools_0.2-15 DiagrammeR_1.0.0 Rcpp_1.0.1 readr_1.3.1 [25] scales_1.0.0 jsonlite_1.6 rgexf_0.15.3 bit_1.1-14 [29] gridExtra_2.3 brew_1.0-6 ggplot2_3.1.1 hms_0.4.2 [33] digest_0.6.18 stringi_1.4.3 dplyr_0.8.0.1 grid_3.5.2 [37] influenceR_0.1.0 tools_3.5.2 magrittr_1.5 lazyeval_0.2.2 [41] tibble_2.1.1 crayon_1.3.4 tidyr_0.8.3 pkgconfig_2.0.2 [45] Matrix_1.2-15 downloader_0.4 assertthat_0.2.1 httr_1.4.0 [49] rstudioapi_0.10 viridis_0.5.1 R6_2.4.0 igraph_1.2.4 [53] compiler_3.5.2 ## Build info (Required if built from source) Compiler (gcc/clang/mingw/visual studio): gcc MXNet commit hash: 2c5d7f768bdd1599c35f1a3cd1266efd051a9986 Build config: (Paste the content of config.mk, or the build command.) ## Error Message: Error in .self$iter.pos$iter.next() : [16:07:41] src/io/iter_csv.cc:137: Check failed: label_parser_->Next() Data CSV's row is smaller than the number of rows in label_csv Stack trace returned 9 entries: [bt] (0) /usr/local/lib/R/site-library/mxnet/libs/libmxnet.so(dmlc::StackTrace[abi:cxx11]()+0x17b) [0x7faced51acbb] [bt] (1) /usr/local/lib/R/site-library/mxnet/libs/libmxnet.so(dmlc::LogMessageFatal::~LogMessageFatal()+0x18) [0x7faced51c238] [bt] (2) /usr/local/lib/R/site-library/mxnet/libs/libmxnet.so(mxnet::io::CSVIterTyped<float>::Next()+0x28d) [0x7facf022573d] [bt] (3) /usr/local/lib/R/site-library/mxnet/libs/libmxnet.so(mxnet::io::BatchLoader::Next()+0x6e) [0x7facf021009e] [bt] (4) /usr/local/lib/R/site-library/mxnet/libs/libmxnet.so(mxnet::io::PrefetcherIter::Init(std::vector<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, s Calls: mx.model.FeedForward.create ... mx.model.train -> <Anonymous> -> <Anonymous> -> .External Execution halted ## Minimum reproducible example trainIter <- setRefClass( 'trainIterator', fields = c('iter.pos', 'iter.neg', 'data.pos', 'label.pos', 'data.neg', 'label.neg', 'bz.pos', 'bz.neg', 'data.shape', 'pos.next', 'neg.next', 'epoch.size', 'epc', 'features', 'active_features', 'actFeatureIndexes'), contains = 'Rcpp_MXArrayDataIter', methods = list( initialize = function (data.pos, lab.pos, data.neg, lab.neg, bz.pos, bz.neg, epoch.size, active_features) { .self$data.pos <- data.pos .self$label.pos <- lab.pos .self$data.neg <- data.neg .self$label.neg <- lab.neg .self$bz.pos <- bz.pos .self$bz.neg <- bz.neg .self$epoch.size <- epoch.size .self$epc <- 0 .self$pos.next <- FALSE .self$neg.next <- FALSE .self$features <- unlist(read.csv(file.path(.ODR$WRK_PATH, 'feature_names.csv'), header = FALSE))[-1] #1 is the label .self$active_features <- active_features if (is.null(active_features)) { .self$actFeaturesIndexes = 1:length(.self$features) } else { if (!all(active_features %in% .self$features)) stop('wrong active_features') .self$actFeatureIndexes = sapply(active_features, function (x) which(.self$features == x)) } .self$data.shape <- length(.self$actFeatureIndexes) .self$iter.pos <- mx.io.CSVIter(data.csv=data.pos, label.csv=lab.pos, batch.size=bz.pos, data.shape=c(length(.self$features)), dtype='float32') .self$iter.neg <- mx.io.CSVIter(data.csv=data.neg, label.csv=lab.neg, batch.size=bz.neg, data.shape=c(length(.self$features)), dtype='float32') }, value = function () { POS = .self$iter.pos$value() NEG = .self$iter.neg$value() pos.data = as.matrix(POS$data) pos.data = pos.data[.self$actFeatureIndexes,,drop=FALSE] neg.data = as.matrix(NEG$data) neg.data = neg.data[.self$actFeatureIndexes,,drop=FALSE] data = mx.nd.array(cbind(pos.data, neg.data)) lab = c(as.array(POS$label), as.array(NEG$label)) dim(lab) = c(.self$bz.pos + .self$bz.neg) lab = mx.nd.array(lab) list( data = data, label = lab ) }, iter.next = function () { .self$epc = .self$epc + 1 if (.self$epc %% .self$epoch.size == 0) return(FALSE) .self$pos.next = .self$iter.pos$iter.next() .self$neg.next = .self$iter.neg$iter.next() if (!.self$pos.next) { cat('[*] reset pos 1', sep='\n') .self$iter.pos$reset() .self$pos.next = .self$iter.pos$iter.next() } if (!.self$neg.next) { cat('[*] reset neg 1', sep='\n') .self$iter.neg$reset() .self$neg.next = .self$iter.neg$iter.next() } return(TRUE) }, reset = function () { ## if (runif(1) > 0.5) { ## cat('[*] reset pos 2', sep='\n') ## .self$iter.pos$reset() ## } ## if (runif(1) > 0.5) { ## cat('[*] reset neg 2', sep='\n') ## .self$iter.neg$reset() ## } }, num.pad = function () { .self$iter.pos$num.pad() .self$iter.neg$num.pad() }, finalize = function () { .self$iter.pos$finalize() .self$iter.neg$finalize() } ) )
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
