通过将底部和顶部blob设置为相同,我们可以告诉Caffe进行"就地"计算以保持内存消耗.
目前,我知道我可以就地安全地使用"BatchNorm"
,"Scale"
并且"ReLU"
层(请让我知道,如果我错了).虽然它似乎对其他层有一些问题(这个问题似乎是一个例子).
何时在Caffe中使用就地层?
它如何与反向传播一起工作?
machine-learning backpropagation neural-network deep-learning caffe
根据我的理解,通常自动编码器在编码和解码网络中使用绑定权重吗?
我看了一下Caffe的自动编码器示例,但我没看到权重是如何绑定的.我注意到编码和解码网络共享相同的blob,但是如何保证权重正确更新?
如何在Caffe中实现捆绑重量自动编码器?
有谁知道如何提取排名2张量的每行的前n个最大值?
例如,如果我希望形状[2,4]的张量的前2个值具有值:
[[40,30,20,10],[10,20,30,40]]
所需的条件矩阵如下所示:[[True,True,False,False],[False,False,True,True]]
一旦我有了条件矩阵,我就可以使用tf.select来选择实际值.
谢谢你的帮助!
我的输入是索引列表,如
[1,3], [0,1,2]
Run Code Online (Sandbox Code Playgroud)
如何将它们转换为固定长度指示矢量?
[0, 1, 0, 1], [1, 1, 1, 0]
Run Code Online (Sandbox Code Playgroud) 我有一个矩阵列表L
,其中每个项目M
都是一个x*n
矩阵(x
是一个变量,n
是一个常量).
我想计算以下Python代码所做的M'*M
所有项目的总和L
(M'
是转置M
):
for M in L:
res += np.dot(M.T, M)
Run Code Online (Sandbox Code Playgroud)
实际上我想在Theano中实现它(它不支持可变长度的多维数组),我不想将所有矩阵填充到相同的大小,因为这会浪费太多空间(一些矩阵可能非常大) ).
有一个更好的方法吗?
编辑:
L
在Theano汇编之前就已经知道了.
编辑:
收到了来自@DanielRenshaw和@Divakar的两个优秀答案,情绪上难以选择接受.
我有一个预先训练的Tensorflow检查点,其中所有参数都是float32数据类型。
如何将检查点参数加载为float16?还是有办法修改检查点的数据类型?
以下是我的代码片段,试图将float32检查点加载到float16图中,但出现类型不匹配错误。
import tensorflow as tf
A = tf.get_variable(name='foo', shape=[3, 3], dtype=tf.float32)
dense = tf.layers.dense(inputs=A, units=3)
varis = tf.trainable_variables(scope=None)
print(varis[1]) # <tf.Variable 'dense/kernel:0' shape=(3, 3) dtype=float32_ref>
assign = dict([(vari.name, vari) for vari in varis])
saver = tf.train.Saver(assign)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(dense))
save_path = saver.save(sess, "tmp.ckpt")
tf.reset_default_graph()
A = tf.get_variable(name='foo', shape=[3, 3], dtype=tf.float16)
dense = tf.layers.dense(inputs=A, units=3)
varis = tf.trainable_variables(scope=None)
print(varis[1]) # <tf.Variable 'dense/kernel:0' shape=(3, 3) dtype=float16_ref>
assign = dict([(vari.name, vari) for vari in varis])
saver = tf.train.Saver(assign) …
Run Code Online (Sandbox Code Playgroud) cuDNN安装手册说
所有平台
将cuDNN存档解压缩到您选择的目录,如下所示.然后按照以下特定于平台的说明进行操作.
LINUX
cd export LD_LIBRARY_PATH =`pwd`:$ LD_LIBRARY_PATH
通过将-I添加到编译行并将-L -lcudnn添加到链接行,添加到构建和链接过程.
看来,它只是增加了pwd
到LD_LIBRARY_PATH
,所以我想只是更换文件pwd
会做更新.
但似乎并不那么简单,因为在我做完这件事之后,我得到了Theano的投诉
cuDNN版本太旧了.更新到v5,是3007.
caffe ×3
tensorflow ×3
python ×2
algorithm ×1
autoencoder ×1
cudnn ×1
linux ×1
matrix ×1
nvidia ×1
optimization ×1
theano ×1
ubuntu ×1