问题标签 [theano-cuda]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Theano 安装问题 - corecrt.h 已解决,为数百个编译错误让路
我整天都在努力解决这个问题!
最初我遇到了编译器无法找到 corecrt.h 文件的问题。我似乎已经通过将所有包含文件从复制C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
到C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include
.
但是现在,我收到了数百个编译错误。我对 C/C++ 不太熟悉,这似乎是一个简单明显的问题吗?
theano - Theano 无法找到 Gpu - Ubuntu 16.04
警告(theano.sandbox.cuda):CUDA 已安装,但设备 gpu 不可用(错误:cuda 不可用)
尝试运行任何示例 Theano 程序时出现此错误。
我已经尝试了此线程中提供的所有建议修复。
nvcc --version
输出:
nvcc:NVIDIA (R) Cuda 编译器驱动程序
版权所有 (c) 2005-2015 NVIDIA Corporation
构建于 Tue_Aug_11_14:27:32_CDT_2015
Cuda 编译工具,版本 7.5,V7.5.17
nvidia-smi
输出:
gcc 版本:
我一直在努力让它工作一段时间,希望有人能指出我正确的方向。
python-3.x - keras 中的中间层,用于获取权重、转换并馈送到网络
我在 keras 中有使用图形结构的自定义层模型。我想在每对现有层之间添加一个中间层。该层的作用将是添加一些类似于 keras 提供的 GaussianNoise 层的噪声。我想操纵上一层的权重,然后将其馈送到下一层。
我的问题是我无法理解如何从前一层获取这些权重。我以 GaussianNoise 层为例。调用方法定义为:
'x' 是一个 TensorVariable,它没有关于权重的信息。我怎样才能在这个中间层内获得重量?
谢谢
gpu - 在没有 sudo 权限的情况下释放 GPU 内存
我使用 theano 进行一些深度学习实验。我已经通过 ctrl+c 杀死了一个运行了 3 周的进程,以启动一个新进程。
如我所见,虽然我已经杀死了进程,但gpu内存并没有被释放。根据 nvidia-smi,内存是免费的,除了 23MB 的少量使用。我用特斯拉k40。
但实际上,当我尝试运行非常小的数据集时,我会遇到内存错误。如果它只有 23 MB 的使用量,那根本不是问题。
我在使用的机器上没有 sudo 权限。我该如何解决这个问题?
windows-10 - 在 GPU、Windows 10 上运行 theano 的问题
我在 GPU 上运行 Theano 测试代码时遇到问题。我遵循了官方的 Theano 安装指南,之后没有工作我遵循了这个指南:https ://github.com/philferriere/dlwin 。但是我仍然无法在 GPU 上运行代码,而且还出现了一些奇怪的行为。
我要运行的测试示例:
在 Pycharm 中运行时出现以下错误:
但是,当我尝试从控制台导入 theano 时,出现以下错误:
我安装了最新的 64 位版本的 cuda (cuda-8.0.44),我有一个 64 位的 python 3.5.2、theano realease 0.8.2、NVIDIA GTX 680、Microsoft Visual Studio 2015。
我已经为此烦恼了 24 小时,但我的想法已经不多了。提前感谢您的帮助!
编辑:在 PyCharm 中导入 theano 工作正常,我在两种情况下都使用相同的 python
python - Keras, Theano - Cropping2D 在 GPU 上引入“输入尺寸不匹配”
我尝试使用 keras 创建一个自动编码器。(参考:https ://blog.keras.io/building-autoencoders-in-keras.html )
以下测试代码在我的 Mac 上运行良好:
但是,当我在 AWS EC2 g2.2xlarge 上测试这段代码时(我的配置信息在这篇文章的末尾),我遇到了以下错误:
如果 Cropping2D 函数被删除,我可以在 GPU 上运行代码:
在类似的情况下,Cropping3D 也会引发类似的错误...... :-(
我的问题是:
如何解决这个问题并在 GPU 上运行 Cropping2D/Cropping3D?
附言。我的 AWS EC2 g2.2xlarge 配置如下:
- Ubuntu 14.04
- 库达 7.5
- 库顿 v5
- 喀拉斯 (1.2.0)
- Theano (0.9.0dev4)
谢谢!
python-2.7 - Theano Windows 7 导入错误
今天我尝试在 W7 x64 上安装 Theano。我想我安装了它,但我在某个地方也犯了一个错误,我不知道在哪里。我实际上想将它与 CUDA 一起使用。
这是我安装的程序:Anaconda 4.2.0 x64 (Python 2.7.12)、TDM GCC、CUDA 8.0 Visual Studio 13 Theano via Git
这是theanorc文件:
就像我说的,我不知道我在哪里犯了错误。这是我写“import theano”时的输出
提前谢谢各位!
ps:还有一个错误-> http://pastebin.com/V59Pm9Qa
linux - 我的 CUDA 和 Theano 不能一起工作
我正在尝试通过运行此代码来测试我的 GPU 健全性
我收到了这个错误:
mod.cu(941):警告:无符号整数与零的无意义比较
mod.cu(3001):警告:不推荐将字符串文字转换为“char *”
mod.cu(3004):警告:从字符串转换不推荐将文字转换为“char *”
mod.cu(3006):警告:不推荐从字符串文字转换为“char *”
mod.cu(3009):警告:不推荐从字符串文字转换为“char *”
mod.cu(3011):警告:从字符串文字转换为“char *”已弃用
mod.cu(3014):警告:从字符串文字转换为“char *”已弃用
mod.cu(3017):警告: 不推荐将字符串文字转换为“char *”
mod.cu(3020):警告:不推荐从字符串文字转换为“char *”
mod.cu(3022):警告:不推荐从字符串文字转换为“char *”
mod.cu(3025):警告:不推荐从字符串文字到“char *”的
转换 mod.cu(3027):警告:不推荐从字符串文字到“char *”的
转换 mod.cu(3030):警告:从字符串文字到“的转换char *" 已弃用
mod.cu(3032):警告:从字符串文字转换为 "char *" 已弃用
mod.cu(3035):警告:从字符串文字转换为 "char *" 已弃用
mod.cu (3038):警告:从字符串文字转换为“char *”已弃用
mod.cu(3041):警告:不推荐从字符串文字到“char *”的
转换 mod.cu(3043):警告:不推荐从字符串文字到“char *”的转换
mod.cu(3046):警告:从字符串文字到“char *”的
转换已弃用 mod.cu(3048):警告:从字符串文字到“char *”的转换已弃用
mod.cu(3051):警告:从字符串文字转换为“ char *" 已弃用
mod.cu(941):警告:无符号整数与零的无意义比较
mod.cu(3001):警告:从字符串文字转换为 "char *" 已弃用
mod.cu(3004):警告: 不推荐将字符串文字转换为“char *”
mod.cu(3006):警告:不推荐从字符串文字到“char *”的
转换 mod.cu(3009):警告:不推荐从字符串文字到“char *”的转换
mod.cu(3011):警告:不推荐从字符串文字到“char *”的
转换 mod.cu(3014):警告:不推荐从字符串文字到“char *”的
转换 mod.cu(3017):警告:从字符串文字到“的转换char *" 已弃用
mod.cu(3020):警告:从字符串文字转换为 "char *" 已弃用
mod.cu(3022):警告:从字符串文字转换为 "char *" 已弃用
mod.cu (3025):警告:不推荐将字符串文字转换为“char *”
mod.cu(3027):警告:不推荐从字符串文字转换为“char *”
mod.cu(3030):警告:不推荐从字符串文字转换为“char *”
mod.cu(3032):警告:不推荐从字符串文字到“char *”的
转换 mod.cu(3035):警告:不推荐从字符串文字到“char *”的
转换 mod.cu(3038):警告:从字符串文字到“的转换char *" 已弃用
mod.cu(3041):警告:从字符串文字转换为 "char *" 已弃用
mod.cu(3043):警告:从字符串文字转换为 "char *" 已弃用
mod.cu (3046):警告:从字符串文字到“char *”的转换已弃用
mod.cu(3048):警告:从字符串文字到“char *”的转换已弃用
mod.cu(3051):警告:从字符串文字到“char ”的转换已弃用
/usr/include/string.h:在函数 'void __mempcpy_inline(void*, const void*, size_t)':
/usr/include/string.h:652:42: error: 'memcpy' 未在此范围内声明
return (char ) memcpy (__dest, __src , __n) + __n;
^
mod.cu:在函数“PyObject CudaNdarray_Reshape(CudaNdarray*,PyObject*)”中:mod.cu:955:122:警告:格式 '%lld' 需要类型为 'long long int' 的参数,但参数 3 的类型为 'size_t {aka long unsigned int}' [-Wformat=]
PyErr_Format(PyExc_ValueError, "size必须保持不变,从 %lld 更改为 %lld", CudaNdarray_SIZE(self), rval_size);
^
['nvcc', '-shared', '-O3', '-m64', '-Xcompiler', '-DCUDA_NDARRAY_CUH=c72d035fdf91890f3b36710688069b2e,-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION,-fPIC,-fvisibility=hidden',' '-rpath,/home/rkenaya/.theano/compiledir_Linux-4.4--generic-x86_64-with-Ubuntu-16.04-xenial-x86_64-2.7.12-64/cuda_ndarray', '-I/usr/local/lib/ python2.7/dist-packages/theano/sandbox/cuda', '-I/usr/local/lib/python2.7/dist-packages/numpy/core/include', '-I/usr/include/python2. 7', '-I/usr/local/lib/python2.7/dist-packages/theano/gof', '-o', '/home/rkenaya/.theano/compiledir_Linux-4.4--generic-x86_64-with -Ubuntu-16.04-xenial-x86_64-2.7.12-64/cuda_ndarray/cuda_ndarray.so','mod.cu','-L/usr/lib','-lcublas','-lpython2.7',“-lcudart”] mod.cu:955:122:警告:格式“%lld”需要“long long int”类型的参数,但参数 4 的类型为“size_t {aka long unsigned int}”[-Wformat=] 错误(theano.sandbox.cuda): 编译 cuda_ndarray.cu 失败: ('nvcc return status', 1, 'for cmd', 'nvcc -shared -O3 -m64 -Xcompiler -DCUDA_NDARRAY_CUH=c72d035fdf91890f3b36710688069b2e,-DNPY_NO_DEPRECATED_1_API=NPY fPIC,-fvisibility=hidden -Xlinker -rpath,/home/rkenaya/.theano/compiledir_Linux-4.4--generic-x86_64-with-Ubuntu-16.04-xenial-x86_64-2.7.12-64/cuda_ndarray -I/usr/ local/lib/python2.7/dist-packages/theano/sandbox/cuda -I/usr/local/lib/python2.7/dist-packages/numpy/core/include -I/usr/include/python2.7 -我/usr/local/lib/python2.7/dist-packages/theano/gof -o /home/rkenaya/.theano/compiledir_Linux-4.4--generic-x86_64-with-Ubuntu-16。04-xenial-x86_64-2.7.12-64/cuda_ndarray/cuda_ndarray.so mod.cu -L/usr/lib -lcublas -lpython2.7 -lcudart')
警告(theano.sandbox.cuda):CUDA 已安装,但设备 gpu 不可用(错误:cuda 不可用)
[Elemwise{exp,no_inplace}()]
循环 1000 次耗时 4.233657 秒
结果为 [1.23178029 1.61879337 1.52278066 ... , 2.20771813 2.29967761 1.62323284]
使用了cpu
theano - 使用 Keras 和 Theano 进行模型选择需要很长时间
我正在使用 Keras 和 Theano 对一组具有不同架构和参数的循环神经网络进行模型选择和性能估计的嵌套交叉验证,这些网络设置为在 AWS P2 实例上运行,该实例具有带有 CUDA 的 Tesla K80 GPU 和安装/启用 cuDNN。
为了执行模型选择,我比较了从参数空间采样的 30 个模型,使用
NeuralNetworkClassifier()
然后我使用下面定义的函数构建一个 RNN 模型
它构造了一个 RNN,其隐藏层数由参数'nb_hidden_layers'
in给出,param_grid
并且每层中的隐藏单元数是从列表中随机采样的[50, 75, 100, 125, 150]
。最后,这个函数compile
是模型并返回它。
在嵌套交叉验证 (CV) 期间,内部循环(运行IN
时间)比较 30 个随机选择的模型的性能。在这一步之后,我在外循环中选择性能最好的模型,并在一个保留数据集上估计它的性能;这个方案是重复的OUT
。因此,我compile
ing 一个 RNN 模型OUT
x IN
x30 次,这需要非常长的时间;例如,当OUT=4
和时IN=3
,我的方法需要 6 到 7 个小时才能完成。
我看到 GPU 被偶尔使用(但 GPU 使用率从未超过 40%);但是,大多数时候,正在使用的是 CPU。我的(未受过教育的)猜测是,这compile
在 CPU 上进行了很多次并占用了大量的计算时间,而模型拟合和预测是在 GPU 上完成的并且需要很短的时间。
我的问题:
- 有没有办法补救这种情况?
- 实际上是
compile
在CPU上完成的吗? - 人们如何做嵌套CV来选择最好的RNN架构?
- 我在生产服务器上执行这个方案是否合理?您是否建议我做一个可能需要 24 小时的大型嵌套 CV 来选择性能最佳的模型,然后在生产服务器上使用那个模型?
谢谢你们。
python - 在theano安装期间`没有名为nose_parameterized的模块`
目前,我正在尝试在支持 cuda 的 ubuntu 16.04 系统上安装 theano。安装过程本身很顺利,直到我尝试测试安装:
输出的最后几行是:
这些之前有大约 20 个块,似乎不同的测试在堆栈跟踪中完全相同的前 3 行上失败。final 发生的代码如下所示(添加了行号):
在寻找解决方案时,我遇到了:
运行鼻子测试时出错
我尝试了那里提出的解决方案:
sudo pip install nose-parameterized
但是这没有效果。有谁知道还有什么可能导致此错误?
编辑:所以我重新安装了 theano 以使问题更具重现性。我使用here找到的说明安装了theano ,所以我使用了:
然后我用:
这个输出的最后几行几乎和前面一样:
编辑2:我认为这可能是python版本问题。当我尝试:
我得到:
并且存在以下文件夹:
/usr/local/lib/python2.7/dist-packages/nose_parameterized
所以,据我所知,这应该不是问题。但是,当我尝试:
我得到: