使用Map时Scala类型不匹配

时间:2015-11-30 02:30:27

标签: scala dictionary nd4j

我正在尝试使用nd4s库创建一个从整数到Nd4j数组(如INDArrays)的映射。我正在努力解决这个问题:

import org.nd4j.linalg.factory._
scala> Map(0 -> Nd4j.create(2))
<console>:17: error: type mismatch;
 found   : org.nd4j.linalg.api.ndarray.INDArray
 required: Int
              Map(0 -> Nd4j.create(2))
                                  ^

如果我将密钥类型设置为字符串,则可以:

scala> Map("0" -> Nd4j.create(2))
res28:     scala.collection.immutable.Map[String,org.nd4j.linalg.api.ndarray.INDArray] = Map(0 -> [ 0.00, 0.00])

它也可以通过反转键和值类型来实现。

我无法理解发生了什么。

1 个答案:

答案 0 :(得分:0)

我通过在gitter上的Scala频道上寻求帮助找到了答案。

问题是nd4s对 - &gt;执行隐式转换。运营商,导致这个问题。

https://github.com/deeplearning4j/nd4s/blob/master/src/main/scala/org/nd4s/Implicits.scala#L143-L176