【发布时间】:2018-04-09 04:21:50
【问题描述】:
我正在将 TensorFlow 与 Julia 一起使用,我想使用以下内容来简化表达式:
cross_entropy = nn.sparse_softmax_cross_entropy_with_logits( logits, labels)
optimizer = train.GradientDescentOptimizer(learning_rate)
train_op = train.minimize(optimizer,reduce_mean(cross_entropy))
我有以下错误:
ERROR: Tensorflow error: Status: Node name 'gradients/reduce_grad/Reshape' already exists in the Graph
Stacktrace:
[1] check_status at /home/jabou/.julia/v0.6/TensorFlow/src/core.jl:459 [inlined]
[2] import_graph_def(::TensorFlow.Graph, ::Array{UInt8,1}, ::TensorFlow.GraphImportOptions) at /home/jabou/.julia/v0.6/TensorFlow/src/core.jl:1680
[3] import_graph_def(::TensorFlow.Graph, ::TensorFlow.tensorflow.GraphDef, ::TensorFlow.GraphImportOptions) at /home/jabou/.julia/v0.6/TensorFlow/src/core.jl:1690
[4] extend_graph(::TensorFlow.Graph, ::Array{Any,1}) at /home/jabou/.julia/v0.6/TensorFlow/src/core.jl:427
[5] extend_graph(::Array{Any,1}) at /home/jabou/.julia/v0.6/TensorFlow/src/core.jl:291
[6] gradients(::TensorFlow.Tensor{Float32}, ::Array{Any,1}, ::Void) at /home/jabou/.julia/v0.6/TensorFlow/src/core.jl:1583
[7] gradients(::TensorFlow.Tensor{Float32}, ::Array{Any,1}) at /home/jabou/.julia/v0.6/TensorFlow/src/core.jl:1575
[8] compute_gradients(::TensorFlow.train.GradientDescentOptimizer, ::TensorFlow.Tensor{Float32}, ::Void) at /home/jabou/.julia/v0.6/TensorFlow/src/train.jl:48
[9] #minimize#1(::Void, ::Void, ::Void, ::Function, ::TensorFlow.train.GradientDescentOptimizer, ::TensorFlow.Tensor{Float32}) at /home/jabou/.julia/v0.6/TensorFlow/src/train.jl:40
[10] minimize(::TensorFlow.train.GradientDescentOptimizer, ::TensorFlow.Tensor{Float32}) at /home/jabou/.julia/v0.6/TensorFlow/src/train.jl:37
在python中有避免错误的指令:tf.reset_default_graph(),但在Julia中没有类似的命令,我向GitHub询问:https://github.com/malmaud/TensorFlow.jl/issues/374
你能帮帮我吗?
编辑
有时,我会收到有关 python 版本的警告。我使用指示的命令升级了版本,但它不起作用。也许问题就在这里?
WARNING: Your Python TensorFlow client version (1.5.0) is below the TensorFlow backend version (1.6.0). This can cause various errors. Please upgrade your Python TensorFlow installation and then restart Julia.
You can upgrade by calling `using Conda; Conda.update();` from Julia.
这是我的代码:
ENV["CUDA_VISIBLE_DEVICES"] = "0" # It is to use the GPU
using TensorFlow
using Distributions
rng = MersenneTwister(1235)
function weight_variable(shape)
initial = map(Float32, rand(Normal(0, .001), shape...))
return Variable(initial)
end
function bias_variable(shape)
initial = fill(Float32(.1), shape...)
return Variable(initial)
end
# Inputs
num_pixels = 12
num_classes = 10
x = placeholder(Float32, shape=[nothing, num_pixels])
Weight = weight_variable([num_pixels,num_classes])
biases = bias_variable([num_classes])
logits = x*Weight + biases
labels = rand(rng,0:9,10) # Random labels for the test
cross_entropy = nn.sparse_softmax_cross_entropy_with_logits( logits = logits, labels = labels)
cross_entropy_reduce = reduce_mean(cross_entropy)
optimizer = train.GradientDescentOptimizer(0.001)
train_op = train.minimize(optimizer,cross_entropy_reduce) # Here is the crash
我在 IDE 中使用 atom,使用 julia 0.6.2。
谢谢。
【问题讨论】:
-
请发布一个MWE,可以执行得到你的错误
-
我用我的代码编辑了我的帖子...
-
我无法重现该错误。以上在我的机器上运行良好。
-
所以,我添加了堆栈跟踪和我有时在运行程序时遇到的警告......也许有一些信息。
-
这是 MWE 的解释,stackoverflow.com/help/mcve 如果这是最小的,我会感到惊讶。请提供重现错误的较小代码。 (通过制作 MWE,您可能会发现自己出了什么问题。)
标签: tensorflow julia