我搜索了Eclipse设置,web和StackOverflow,但我找不到答案.Eclipse总是折叠import语句,我无法将其关闭.
文档对此并不十分清楚.我想通过opt.compute_gradients(E, [v])
包含存储的张量的?E/?x = g(x)
每个元素可以获得渐变.是否实质上执行,其中为学习率是多少?这意味着如果我想在变量中添加一个正的附加变化,我需要更改,例如:x
v
opt.apply_gradients(grads_and_vars)
x ? -?·g(x)
?
p
g(x) ? g(x) - (1/?)p
opt = tf.train.GradientDescentOptimizer(learning_rate=l)
grads_and_vars = opt.compute_gradients(loss, var_list)
for l, gv in enumerate(grads_and_vars):
grads_and_vars[l] = (gv[0] - (1/l) * p, gv[1])
train_op = opt.apply_gradients(grads_and_vars)
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
我基本上想要选择将输入提供给图形的中间并计算从那里输出的输出.我的一个想法是使用tf.placeholder_with_default
默认值为零张量.然后我可以使用加法混合可选输入,但是在大形状上添加这似乎是很多不必要的计算.有没有更好的方法来实现这一目标?
input_enabled = tf.placeholder_with_default(tf.constant(1.), [1])
input_shape = [None, in_size]
input = tf.placeholder_with_default(tf.zeros(input_shape), input_shape)
// ...
bottleneck_shape = [None, bottleneck_size]
bottleneck = input_enabled * f(prev_layer) + tf.placeholder_with_default(tf.zeros(bottleneck_shape), bottleneck_shape)
// ...
// Using graph with input at first layer:
sess.run([output], feed_dict={input: x})
// Using graph with input at bottleneck layer:
sess.run([output], feed_dict={bottleneck: b, input_enabled: 0.})
Run Code Online (Sandbox Code Playgroud) 我想知道为什么undefined == undefined
但是NaN != NaN
.
我基本上有一批神经元激活一个A
形状的张力层[batch_size, layer_size]
.我们B = tf.square(A)
.现在我想为这批中每个向量中的每个元素计算以下条件:if abs(e) < 1: e ? 0 else e ? B(e)
where e
中的元素位于B
相同的位置e
.我可以通过一次tf.cond
操作以某种方式对整个操作进行矢量化吗?
我想从数据库中只获取一行,因为我只期望一行.但是,fetchAll
在我可以访问肉之前,我总是先打开阵列:
$result = self::$db->fetchAll($select);
$result = $result[0];
Run Code Online (Sandbox Code Playgroud)
有更好的解决方案吗?
是否可以获取tf.scan
操作的输出并将其直接流式传输到不同的GPU,从而有效地在两个GPU上并行运行两个堆叠的RNN?像这样的东西:
cell1 = tf.nn.rnn_cell.MultiRNNCell(..)
cell2 = tf.nn.rnn_cell.MultiRNNCell(..)
with tf.device("/gpu:0"):
ys1 = tf.scan(lambda a, x: cell1(x, a[1]), inputs,
initializer=(tf.zeros([batch_size, state_size]), init_state))
with tf.device("/gpu:1"):
ys2 = tf.scan(lambda a, x: cell2(x, a[1]), ys1,
initializer=(tf.zeros([batch_size, state_size]), init_state))
Run Code Online (Sandbox Code Playgroud)
TensorFlow会自动处理该优化,还是会阻止图表流程,直到列表ys1
完成为止.
我发现Eclipse在打字过程中检查代码是否存在错误和警告令人分心.是否有可能改变这种行为,以便它只检查我写完一行的时间?
我正在运行CMake(3.4.3),如CMake FAQ中所述:
export CC="cc_args.py $PWD/../bin/gcc"
export CXX="cc_args.py $PWD/../bin/g++"
cmake -DCMAKE_BUILD_TYPE=Debug ..
Run Code Online (Sandbox Code Playgroud)
然而,当我打印CMAKE_CXX_COMPILER
和CMAKE_C_COMPILER
它仍然指向在系统默认的编译器/usr/bin
.它只有在我明确读入这样的环境变量时才有效:
IF (NOT $ENV{CC} STREQUAL "")
SET(CMAKE_C_COMPILER $ENV{CC})
ENDIF ()
IF (NOT $ENV{CXX} STREQUAL "")
SET(CMAKE_CXX_COMPILER $ENV{CXX})
ENDIF ()
Run Code Online (Sandbox Code Playgroud)
但即使这样,建筑也会因此消息失败:
/bin/sh: 1: /home/peterg/bin/cc_args.py /home/peterg/Code/build/../bin/g++: not found
Run Code Online (Sandbox Code Playgroud)
但是我确信所有路径都是正确的,因为只执行两个冒号之间的路径按预期输出:
g++: fatal error: no input files
compilation terminated.
Run Code Online (Sandbox Code Playgroud)
似乎编译过程不喜欢编译器路径中的空格.我现在创建了两个脚本(一个用于GCC,一个用于CC),它们包装命令并传播参数,这似乎有效.但似乎我仍然在做一些根本性的错误,因为CMake本身也不会接受导出的变量CC=proxy_script_cc.sh
和GCC=proxy_script_gcc.sh
没有空格的变量.
我有些困惑:
我有一个这样的命令列表:
var commands = [{"command": "read"}, {"command": "write"}, {"command": "login"}];
Run Code Online (Sandbox Code Playgroud)
如果我尝试访问其中一个命令,它可以工作:
console.log(commands[0]["command"]); // Output is "read"
console.log(commands[0].command); // Output is "read"
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试这个输出总是未定义的:
for(command in commands)
console.log(command["command"]); // undefined, undefined, undefined
Run Code Online (Sandbox Code Playgroud)