与您一样,我使用了
assigntensorflow节点将值分配给变量。因此,首先需要按照您的方式定义节点,然后需要为该节点添加相应的值。然后,我稍后在图形中引用此新分配的节点,因此它不会引发错误
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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)