稀疏矩阵乘积的Theano梯度

2024-09-29 23:26:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试实现一个自动编码器与稀疏的输入。在

我让稀疏的自动编码器与平方误差成本函数一起工作。但是如果我想应用交叉熵误差,它包含矩阵乘法,我得到以下错误:

AsTensorError: ('Variable type field must be a TensorType.', SparseVariable{csr,float64}, Sparse[float64, csr])

我在http://nbviewer.ipython.org/urls/gist.githubusercontent.com/peterroelants/4946cdbf189c5e75f2b7/raw/2ee7d3e533a4a6ac2707a2ffa310b81a86e70afd/gistfile1.json上传了一个说明问题的示例笔记本。在

我把问题归结为矩阵乘法cost = T.sum(x * T.log(z))。这在稠密情况下有效[见单元格2],但在稀疏情况下会出错[参见单元格3]。注意,将稀疏情况下的代价函数[cell 3]更改为平方误差(cost = T.sum((x-z)**2))将得到一个有效的结果。在

谁能指出我做错了什么吗?告诉我如何得到一个具有交叉熵误差的稀疏输入自动编码器来工作吗?在


Tags: 函数错误情况矩阵编码器variable交叉误差

热门问题