11

我在使用 Keras 为具有大 3D 张量的语言模型训练 RNN 时收到此消息(从文本生成,一个热编码,结果形状为 (165717, 25, 7631)):

WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to 
execute optimized C-implementations (for both CPU and GPU) and will default to 
Python implementations. Performance will be severely degraded. To remove this 
warning, set Theano flags cxx to an empty string.
ERROR (theano.sandbox.cuda): nvcc compiler not found on $PATH. Check your nvcc 
installation and try again.

但是一切都很顺利,而我将数据集的大小限制在很小的范围内。因此,我想知道 Theano 或 CUDA 是否限制了矩阵的大小?

此外,我有没有更好的方法来做一个热门的表示?我的意思是,在大型 3D 张量中,由于 one-hot 表示,大多数元素都是 0。但是,我没有找到接受单词索引表示的层。

4

2 回答 2

6
conda install mingw libpython

确保已安装。从手册中指出的另一篇文章https://stackoverflow.com/a/31109547/3598832中获取此答案。

于 2016-10-02T03:18:03.570 回答
3

您的 Theano 安装未完成。

问题的粘贴结果中提到了两个问题:

警告(theano.configdefaults):未检测到 g++!Theano 将无法执行优化的 C 实现(针对 CPU 和 GPU),并将默认使用 Python 实现。性能会严重下降。要删除此警告,请将 Theano flags cxx 设置为空字符串。

我怀疑即使数据量很小,您也会看到这个,但这是一个警告,因此事情会继续成功运行(自动使用纯 Python 实现)。

错误(theano.sandbox.cuda):在 $PATH 上找不到 nvcc 编译器。检查您的 nvcc 安装并重试。

这是在数据大小增加时发生的情况,因为现在正在尝试使用 GPU。

两条消息都表明 Theano 安装不完整。第一个表明您没有正确设置 C++ 编译器。第二个表示您没有正确设置 CUDA。您需要按照安装文档的相应部分来解决这些问题。请注意,pip install Theano当您想要使用纯 Python 实现以外的任何东西时,仅仅做是不够的。

于 2015-11-14T09:19:01.710 回答