相关疑难解决方法(0)

使用 SparseTensor 作为可训练变量?

我正在尝试使用SparseTensor来表示全连接层中的权重变量。
但是,TensorFlow 0.8 似乎不允许将 SparseTensor 用作 tf.Variable。
有什么办法可以解决这个问题吗?

我试过了

import tensorflow as tf

a = tf.constant(1)
b = tf.SparseTensor([[0,0]],[1],[1,1])

print a.__class__  # shows <class 'tensorflow.python.framework.ops.Tensor'>
print b.__class__  # shows <class 'tensorflow.python.framework.ops.SparseTensor'>

tf.Variable(a)     # Variable is declared correctly
tf.Variable(b)     # Fail
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我使用 SparseTensor 的最终目标是永久屏蔽一些密集形式的连接。因此,在计算和应用梯度时忽略这些修剪后的连接。

在我当前的 MLP 实现中,SparseTensor 及其稀疏形式的matmul ops 成功地报告了推理输出。但是,使用 SparseTensor 声明的权重不会随着训练步骤的进行而训练。

sparse-matrix neural-network tensorflow

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

标签 统计

neural-network ×1

sparse-matrix ×1

tensorflow ×1