【问题标题】:Facing difficulties in regression with mxnet in R在 R 中使用 mxnet 进行回归时面临困难
【发布时间】:2018-03-09 08:07:27
【问题描述】:

我正在关注本教程http://mxnet.io/tutorials/r/fiveMinutesNeuralNetwork.html#regression 一切都相应地工作,但是当我改变时:

fc1 <- mx.symbol.FullyConnected(data, num_hidden=1)

fc1 <- mx.symbol.FullyConnected(data, num_hidden=2)

在一堆错误日志中,我认为这可能是最有趣的:

    Error in exec$update.arg.arrays(arg.arrays, match.name, skip.null) : 
    [20:22:59] src/ndarray/ndarray.cc:239: Check failed: from.shape() == to->shape() 
 shape mismatchfrom.shape = (20,) to.shape=(20,2)

如何诊断此问题?

这里是 sessionInfo() 的输出:

R version 3.3.3 RC (2017-02-27 r72279)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.5 LTS

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               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    LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] mlbench_2.1-1 mxnet_0.9.5  

loaded via a namespace (and not attached):
 [1] igraph_1.0.1       Rcpp_0.12.10       rstudioapi_0.6     magrittr_1.5       munsell_0.4.3      colorspace_1.3-2  
 [7] viridisLite_0.2.0  R6_2.2.0           brew_1.0-6         stringr_1.2.0      plyr_1.8.4         dplyr_0.5.0       
[13] visNetwork_1.0.3   Rook_1.1-1         tools_3.3.3        grid_3.3.3         gtable_0.2.0       DBI_0.6           
[19] influenceR_0.1.0   DiagrammeR_0.9.0   htmltools_0.3.5    lazyeval_0.2.0     digest_0.6.12      assertthat_0.1    
[25] tibble_1.2         gridExtra_2.2.1    RColorBrewer_1.1-2 ggplot2_2.2.1      codetools_0.2-8    htmlwidgets_0.8   
[31] viridis_0.4.0      rgexf_0.15.3       stringi_1.1.3      scales_0.4.1       XML_3.98-1.6       jsonlite_1.3   

【问题讨论】:

  • 我无法在 Win 7、R-3.2.3、64 位上重现您的问题。请使用 sessionInfo() 的输出更新您的帖子。作为初步检查,您可以:1)在新的 R 会话中尝试代码 2)如果仍然失败,请尝试重新安装包。
  • 感谢您的回复。帖子已更新,在新的 R 会话中运行代码并未解决问题。让我们看看重新安装会带来什么。

标签: r deep-learning mxnet


【解决方案1】:

问题是在fc1 &lt;- mx.symbol.FullyConnected(data, num_hidden=1) 线下方,教程使用线性回归作为输出lro &lt;- mx.symbol.LinearRegressionOutput(fc1)

LinearRegressionOutput 用于计算其输入符号和提供给它的标签之间的 l2 损失。它假设每个示例有 1 个标签,传递 2 个会破坏它。就我而言,它与您的消息有点不同,可能是因为版本不同:

Error in symbol$infer.shape(list(...)) : 
  Error in operator linearregressionoutput5: Shape inconsistent, Provided=(20,), inferred shape=(20,2)

解决此问题取决于您想要实现的具体目标。如果您正在解决分类任务并希望接收两个类的概率,那么您需要使用 Softmax:

fc1 <- mx.symbol.FullyConnected(data, num_hidden=2)
lro <- mx.symbol.SoftmaxOutput(fc1)

【讨论】:

    猜你喜欢
    • 2020-07-30
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 2014-12-27
    • 1970-01-01
    • 2021-09-07
    相关资源
    最近更新 更多