当数据集变大时,"g ++未被检测到",GPU中的矩阵大小是否有限制?

nan*_*ix9 10 nlp theano deep-learning keras

我得到了这个消息,使用Keras训练RNN语言模型,具有较大的3D张量(从文本生成,一个热编码,结果形状为(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.
Run Code Online (Sandbox Code Playgroud)

但是一切顺利,而我将数据集的大小限制为小.因此,我想知道Theano或CUDA是否限制了矩阵的大小?

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

use*_*832 6

conda install mingw libpython
Run Code Online (Sandbox Code Playgroud)

确保已安装.从另一篇文章/sf/answers/2177668321/获取此答案,该文章从手册中指出.


Dan*_*haw 3

您的 Theano 安装未完成。

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

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

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

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

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

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