如何使用Tensorflow 1.0 Java API创建初始化变量

如何使用Tensorflow 1.0 Java API创建初始化变量,第1张

如何使用Tensorflow 1.0 Java API创建/初始化变量

与您一样,我使用了

assign
tensorflow节点将值分配给变量。因此,首先需要按照您的方式定义节点,然后需要为该节点添加相应的值。然后,我稍后在图形中引用此新分配的节点,因此它不会引发错误
java.lang.IllegalStateException:Attempting to use uninitialized value

我使用GraphBuilder类扩展了Graph功能,并添加了以下必需的类:

class GraphBuilder(g: Graph ) {  def variable(name: String, dataType: DataType, shape: Shape): Output = {    g.opBuilder("Variable", name)      .setAttr("dtype", dataType)      .setAttr("shape", shape)      .build()      .output(0)  }  def assign(value: Output, variable: Output): Output = {      graph.opBuilder("Assign", "Assign/" + variable.op().name()).addInput(variable).addInput(value).build().output(0)  }}val WValue = Array.fill(numFeatures)(Array.fill(hiddenDim)(0.0))val W = builder.variable("W", DataType.DOUBLE, Shape.make(numFeatures, hiddenDim))val W_init = builder.assign(builder.constant("Wval", WValue), W)

分配 ,所以它不适合培训,或节点将在每个直传分配与预先设定值的变量。但是无论如何,从这篇文章看来,您似乎需要添加依赖项,因为默认情况下,JAVA
API不提供训练节点:https :
//github.com/tensorflow/tensorflow/issues/5518。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5105520.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存