问题标签 [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.

0 投票
1 回答
113 浏览

machine-learning - 如果我使用 CUDA 训练神经网络,是否需要使用 CUDA 运行输出算法?

假设我使用 CUDA 来训练一个对象跟踪程序。然后我可以将该程序放在另一台没有强大 gpu 的计算机上并运行对象跟踪程序吗?或者是否需要 gpu 支持来运行输出的算法并对其进行训练?

0 投票
2 回答
1020 浏览

python-3.x - AttributeError:模块'theano'没有属性'tests'

我正在尝试在我的ubuntu上使用theano gpu,但是每次成功运行一次后,下次尝试运行时都会给我这样的错误。不知道为什么,有人可以帮助我吗?

导入 theano Traceback(最近一次调用最后一次):文件“”,第 1 行,在文件“/home/sirius/anaconda3/lib/python3.5/site-packages/theano/init .py ”中,第 95 行,在 if hasattr (theano.tests,“TheanoNoseTester”):AttributeError:模块'theano'没有属性'tests'

0 投票
1 回答
1085 浏览

python - Keras 不对称数据糖尿病视网膜病变检测

我正在尝试为糖尿病视网膜病变检测建立一个预测模型。比赛的训练数据集包括 hy-res 图像不对称地分为 5 类:Normal-25807 images-73.48%;轻度 2442 图像-6.96%;中等 5291 张图片 - 15.07%;Severe-873 图像 - 2.48% 和 Proliferative-708 图像 - 2.01%。为此,我使用带有 Theano 后端的 Keras 框架(用于 CUDA 计算)。

对于图像增强,我使用了 ImageDataGenerator(代码如下)。我已将图像的大小调整为 299x299,并根据它们的类将它们分成 5 个文件夹:

起初,只是为了测试,我决定使用一个简单的卷积模型:

在拟合图像生成器时,我指出了 class_weights 以修复数据的不对称性:class_weight ={0: 25807., 1:2442., 2:5291., 3:873., 4:708.};

我的图片文件夹

问题:

  1. 该模型输出具有高损耗和高精度。为什么?

纪元 1/50 110s - 损失:5147.2669 - acc:0.7366

纪元 2/50 105s - 损失:5052.3844 - acc:0.7302

纪元 3/50 105s - 损失:5042.0261 - acc:0.7421

纪元 4/50 105s - 损失:4986.3544 - acc:0.7361

纪元 5/50 105s - 损失:4999.4177 - acc:0.7361

  1. 每个图像模型都预测为“0”类:

datagen_2=ImageDataGenerator(rescale=1./255)

它的输出是:

没有 argmax(部分)

如果我尝试使用 class_weight ='auto'。在这种情况下,模型显示“可预测”的输出:

纪元 1/50 107s - 损失:0.9036 - acc:0.7381

纪元 2/50 104 秒 - 损失:0.9333 - 累积:0.7321

纪元 3/50 105s - 损失:0.8865 - acc:0.7351

纪元 4/50 106s - 损失:0.8978 - acc:0.7351

纪元 5/50 105s - 损失:0.9158 - acc:0.7302

但是,它仍然不起作用:

我做错了什么?


在回答 Sergii Gryshkevych 之后,我修复了我的模型:我已将 class_weight 更改为 {0:1, 1:10.57, 2:4.88, 3:29, 4:35}(我将每个类中的图像划分为最大图像(在头等舱))。接下来,我将指标更改为 categorical_accuracy。而且我增加了模型中的层数(如这里)。因此,5 个 epoch 后的输出为:

时代 1/5 500/500 [===============================] - 52s - 损失:5.6944 - categorical_accuracy: 0.1840
时代2/5 500/500 [===============================] - 52s - 损失:6.7357 - categorical_accuracy:0.2040
Epoch 3 /5 500/500 [===============================] - 52s - 损失:6.7373 - categorical_accuracy:0.0800
Epoch 4/ 5 500/500 [===============================] - 52s - 损失:6.0311 - categorical_accuracy:0.0180
Epoch 5/5 500/500 [===============================] - 51s - 损失:4.9924 - 分类准确度:0.0560

这是对的吗?

有没有办法将二次加权 kappa 分配为 keras 中的指标?

0 投票
0 回答
1325 浏览

python - 在 GPU 上运行基于 CUDA 的并行代码后,在 CPU 上使用 joblib.Parallel() 并行化失败

我有一个基于 Python 的机器学习代码,它在我的数据上运行三种算法:随机森林(在 scikit-learn 中实现)、梯度提升(在 XGBoost 中实现)和循环神经网络(在 Theano/Keras 中实现)。前两个在 CPU 上运行并使用并行化joblib.Parallel(),后者使用 CUDA 在 GPU 上运行。我将要在变量中使用的算法的名称 ( RF, XGB, )传递给一个函数,它将继续运行每个算法的并行实现。NNmethod

model_selection_loop()是一个执行嵌套交叉验证以选择性能最佳的超参数并估计所选模型在新数据上的性能的函数,并且num_parameter_samples是从网格中采样的不同超参数配置的数量(我使用,比如说,30 种不同的配置)。

如果运行顺序为 (1) RF、 (2) XGB、 (3) NN,则一切正常;前两个在 4 核 CPU 上并行化,后者在 Tesla K80 GPU 上运行;最后,我得到三个预测,以后可以合并。但是,在运行基于 Theano 的 CUDA 并行神经网络后,如果我重新运行RFXGB,我将收到以下错误:

在我看来,一旦执行了基于 CUDA 的代码(循环神经网络),任何调用都Parallel()将被重新路由到 GPU 而不是 CPU,因为GpuArrayException即使我调用了 scikit-learn 随机森林,我得到的错误也是应该在 CPU 上运行的分类器。事实上,如果我的第一次运行的顺序是 (1) NN、 (2) RF、 (3) XGB,那么在完成第一轮后我会得到同样的错误。

我应该提到我在 IPython 会话中运行这些命令,所以我在终端中手动输入命令(尽管我不确定这是否重要)。

关于为什么会发生这种情况以及我如何将任何执行路由到 CPU 的任何想法,RFXGB不管之前是否NN在 GPU 上执行了方法?我会很感激你的帮助。

0 投票
0 回答
123 浏览

python-3.x - 定点或整数计算

我在基于 keras 框架的网络中使用定点数。我担心的是当网络中对theano变量进行乘法运算时,结果是float32(即使提供的数字是定点的)。有没有任何内在的方法可以得到定点格式的结果,甚至是 int.

如果没有,有什么替代方法?

0 投票
0 回答
496 浏览

keras - 使用 Keras 训练模型时 nvcc 报告编译错误

1.问题:我使用Keras(后端:Theano)设计了一个简单的模型来训练股票数据集。配置 Theano 使用 cpu 时,没有出现问题。但是在使用gpu的时候,就会出现如下图的问题。

2.硬件:Titan X Maxwell,驱动版本367.48,cuda V8.0.44。cuDNN 5. 我注意到我在安装时被警告我的 cuDNN 版本比 Theano 版本太新。

3.这是源代码:

0 投票
1 回答
2103 浏览

python - ImportError:动态模块未定义模块导出功能(PyInit_m3d1cf20adb1014f04986e6a344a55bde)

这是我在执行时收到的错误消息import theano

ImportError:动态模块未定义模块导出功能(PyInit_m3d1cf20adb1014f04986e6a344a55bde)

我在 Windows 10 上使用 Python 3.5.2。

我也在 GitHub 上向 Theano 的作者询问过这个问题。我在这里问希望有人能够帮助我,即使他/她不知道 Theano 的内部结构。我怀疑这与 Python 2 和 3 有更多关系。

这是完整的错误:

据我所知,Theano 编译了一个 cpp 文件。以下是编译后的文件:

这是 mod.cpp 的内容:

功能PyInit_m3d1cf20adb1014f04986e6a344a55bde似乎存在,那么问题出在哪里?

编辑 1

我将文件复制到 d:\test 并设法使用 Theano 使用的相同命令重新编译 .pyd 文件(感谢 procmon):

我读到 pyd 文件只是 DLL(至少在 Windows 上)。奇怪的是,编译后的 pyd 文件似乎没有导出任何函数。也许我不明白 Python 如何找到导出的函数:

0 投票
1 回答
418 浏览

gpu - .theanorc 文件中的 Theano 设置在 gpu 和 cuda 之间不同

要配置 theano,我们在您的主文件夹中创建一个 .theanorc 文件并添加以下内容以设置 theano 以在 GPU 上运行。

但有时我会在配置中保存 smbd put device = cuda,有什么区别?据我了解,如果您使用 cuda,它应该工作得更快,因为 cuda 驱动程序将更好地管理 gpu,而不是在计算时为 gpu 获得其他工作

0 投票
1 回答
403 浏览

python - 在 theano 中使用 CUDA8

我已经安装了 CUDA8 并安装了 theano,在导入 theano 时它搜索 CUDA7.5 而不是 CUDA8,如何判断theano使用 CUDA8 而不是 CUDA7.5?

我的系统只有 CUDA8,它不包含混合环境 cuda(即同时具有 CUDA7.5 和 CUDA8)。

这是一个输出nvidia-smi

这是一个输出nvcc -V

在 ipython 中导入 theano 时,它无法在 gpu 模式下运行,并出现错误,它找不到libcudart.so.7.5

这是我的内容.theanorc

我尝试theano从源代码构建,在卸载之前的安装后,它也不起作用。theano-cache clean我确实使用/清除了 theano-cachetheano-cache purge并手动删除了.theano目录下的内容,这也无济于事。

随着更多的调试,我在这里得到错误 https://github.com/Theano/Theano/blob/8b9f73365e4932f1c005a0a37b907d28985fbc5f/theano/gof/cmodule.py#L302

nvcc_compiler尝试在 theano 缓存中加载cuda_ndarray.sofromcuda_ndarray

mod.cu 的编译阶段运行没有错误。

在这种情况下,链接器指向错误libcudart

我假设ldconfig正在正确缓存 cuda 库

0 投票
1 回答
556 浏览

python - 导入 Theano 时加载编译器库时出错:致命错误 C1083

我试图在我的 Python 环境中将 Theano 与我的 GPU 一起使用几天。在导入 theano 时,我收到此错误:

我尝试在 PYTHONPATH、PATH 和 .theanorc.txt 中包含“D:\Anaconda2\MinGW\x86_64-w64-mingw32\include”(此文件夹包含“pyconfig.h”),并带有相同的错误消息。

你有什么想法将 anaconda/cuda/nvcc 连接到 Theano 中的编译器吗?

这是我的配置:

  • 操作系统:Windows 7
  • 显卡:GeForce GTX 950
  • cl.exe : D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
  • nvcc.exe : C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v8.0\bin
  • Python IDE:Python 2 中来自 Anaconda 2 的 Spyder。
  • Theano 0.8.2

我可以使用 CPU “导入 theano”,但我想使用 GPU 进行计算。

输入“import theano”(使用 device=gpu)后,我可以看到一个控制台窗口在显示错误之前启动“nvcc.exe”。

我用 Visual Studio 2012 测试了 CUDA 并且它工作正常,例如“bilateralFilter”在 Visual Studio 中工作没有错误:

  • 这是我的 theanorc.txt 文件(无论是否使用 [nvcc] 和 [cuda],都会出现相同的错误)

    /li>
  • 这是我的路径

    /li>
  • 这是我的 PYTHONPATH

    /li>
  • 这是在 Spyder 中键入“import theano”后的完整错误消息(在 theanorc.txt 中使用 device=gpu):

    /li>