小编Rob*_*ers的帖子

TensorBoard:如何绘制渐变的直方图?

TensorBoard具有在会话时间绘制张量直方图的功能.我想要一个训练期间梯度的直方图.

tf.gradients(yvars,xvars) 返回一个渐变列表.

但是,tf.histogram_summary('name',Tensor)只接受Tensors,而不是Tensors列表.

目前,我做了一个解决方案.我将所有Tensors展平为一个列向量并将它们连接起来:

for l in xrange(listlength): col_vec = tf.reshape(grads[l],[-1,1]) g = tf.concat(0,[g,col_vec]) grad_hist = tf.histogram_summary("name", g)

绘制渐变直方图的更好方法是什么?

这似乎很常见,所以我希望TensorFlow能有一个专门的功能.

python machine-learning tensorflow tensorboard

9
推荐指数
2
解决办法
1万
查看次数

如何在张量流中交替训练?

我正在实施一项交替培训计划.该图包含两个培训操作.培训应该在这些之间交替进行.

这与此类此类研究相关

以下是一个小例子.但它似乎在每一步都更新了两个操作系统.我怎样才能明确地在这些之间交替?

from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
# Import data
mnist = input_data.read_data_sets('/tmp/tensorflow/mnist/input_data', one_hot=True)

# Create the model
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]), name='weights')
b = tf.Variable(tf.zeros([10]), name='biases')
y = tf.matmul(x, W) + b

# Define loss and optimizer
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(
    tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y))
global_step = tf.Variable(0, trainable=False)

tvars1 = [b]
train_step1 = tf.train.GradientDescentOptimizer(0.5).apply_gradients(zip(tf.gradients(cross_entropy, tvars1), tvars1), global_step)
tvars2 = [W]
train_step2 = tf.train.GradientDescentOptimizer(0.5).apply_gradients(zip(tf.gradients(cross_entropy, …
Run Code Online (Sandbox Code Playgroud)

python machine-learning gradient-descent autodiff tensorflow

2
推荐指数
1
解决办法
1093
查看次数

任何函数都可以分解为高斯函数之和吗?

  • 在傅里叶级数中,任何函数都可以分解为正弦和余弦之和
  • 在神经网络中,任何函数都可以分解为逻辑函数的加权和。(一层神经网络)
  • 在小波变换中,任何函数都可以分解为 Haar 函数的加权和

是否也存在分解为高斯混合的性质?如果有的话,有证据吗?

gaussian decomposition wavelet neural-network continuous-fourier

1
推荐指数
1
解决办法
2065
查看次数

为什么tf.assign()会减慢执行时间?

今天我在Tensorflow中为我的LSTM添加学习率衰减.

我改变

train_op = tf.train.RMSPropOptimizer(lr_rate).minimize(loss)
Run Code Online (Sandbox Code Playgroud)

lr = tf.Variable(0.0,trainable=False)
Run Code Online (Sandbox Code Playgroud)

并运行每一个火车步骤

sess.run(tf.assign(lr, lr_rate*0.9**epoch))
Run Code Online (Sandbox Code Playgroud)

但是,这种变化会将执行时间从大约7分钟增加到大约20分钟.

我的问题是:为什么这种改变会增加执行时间?

一个明显的解决方法是每1000次迭代只进行一次分配.但是,我想了解这背后的原因.

  • sess.run()需要额外的时间吗?
  • tf.asign()需要额外的时间吗?
  • 我可以用另一种更高效的方式实现这个tf.assign()吗?

tensorflow

0
推荐指数
1
解决办法
2021
查看次数