关于Theano和Tensorflow多GPU使用问题


Posted in Python onJune 19, 2020

我使用的是tensorflow-gpu (1.2.1)和Theano (0.9.0),2个4G显存Nvidia Quadro M2000 GPU。

1. theano: ValueError: Could not infer context from inputs

THEANO_FLAGS="contexts=dev0->cuda0;dev1->cuda1,gpuarray.preallocate=0.95,mode=FAST_RUN,floatX=float32,on_unused_input=warn" python config.py

ERROR (theano.gof.opt): SeqOptimizer apply <theano.gpuarray.opt.GraphToGPU object at 0xdfe69210>
ERROR: SeqOptimizer apply <theano.gpuarray.opt.GraphToGPU object at 0xdfe69210>
ERROR (theano.gof.opt): Traceback:
ERROR: Traceback:
ERROR (theano.gof.opt): Traceback (most recent call last):
 File "/usr/lib/python2.7/site-packages/theano/gof/opt.py", line 235, in apply
  sub_prof = optimizer.optimize(fgraph)
 File "/usr/lib/python2.7/site-packages/theano/gof/opt.py", line 87, in optimize
  ret = self.apply(fgraph, *args, **kwargs)
 File "/usr/lib/python2.7/site-packages/theano/gpuarray/opt.py", line 322, in apply
  target = infer_context_name(*fgraph.inputs)
 File "/usr/lib/python2.7/site-packages/theano/gpuarray/basic_ops.py", line 122, in infer_context_name
  raise ValueError("Could not infer context from inputs")
ValueError: Could not infer context from inputs

theano不能自动支持多GPU,需要自己指定一个,只能在一个上面跑, 需要指定一个设备device=cuda0。

支持多GPU, 需要自己编程,参考http://deeplearning.net/software/theano/tutorial/using_multi_gpu.html#

2. tensorflow: ResourceExhaustedError: OOM when allocating tensor with

theano: MemoryError: Error allocating 1440000000 bytes of device memory (out of memory).

说明GPU内存不够,要调小输入或网络单元。

3. theano切换成新的GPU backend

WARNING (theano.sandbox.cuda): The cuda backend is deprecated and will be removed in the next release (v0.10)

theano 0.9.0从cuda backend切换gpuarray backend,需要安装python2-Cython-0.25+和libgpuarray-0.6.3+, 然后通过gpuarray.preallocate来指定。

补充知识:pytorch网络输入图片通道在前在后(channel_first和channel_last)的问题

刚开始学习pytorch卷积神经网络的时候,网络输入要求是(batch,3,32,32),我们如果想要测试自己电脑上的图片格式为(32,32,3)。即网络要求channel_first,本地图片是channel_last,此时我们只需要使用numpy中的np.transpose()函数调整下通道的顺序即可。

代码如下:

import numpy as np
import cv2
path = r"C:\Users\X_man\Desktop\image\cat.jpg"
image = cv2.imread(path,0)
image = cv2.resize(image,(32,32))
image = cv2.cvtColor(image,cv2.COLOR_GRAY2BGR)
print(image.shape)

(32,32,3)

image = np.transpose(image,(2,0,1))
print(image.shape)

(3,32,32)

以上这篇关于Theano和Tensorflow多GPU使用问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python模块restful使用方法实例
Dec 10 Python
python实现电子词典
Apr 23 Python
独特的python循环语句
Nov 20 Python
python使用arcpy.mapping模块批量出图
Mar 06 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
Python中fnmatch模块的使用详情
Nov 30 Python
Pandas中DataFrame的分组/分割/合并的实现
Jul 16 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
Jul 22 Python
Django ModelForm组件使用方法详解
Jul 23 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
windows、linux下打包Python3程序详细方法
Mar 17 Python
Python实现http接口自动化测试的示例代码
Oct 09 Python
如何对python的字典进行排序
Jun 19 #Python
浅谈Python中的继承
Jun 19 #Python
python程序需要编译吗
Jun 19 #Python
python中round函数如何使用
Jun 19 #Python
keras实现theano和tensorflow训练的模型相互转换
Jun 19 #Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 #Python
python中怎么表示空值
Jun 19 #Python
You might like
给海燕B411配件机起死回生配上件
2021/03/02 无线电
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
php实现字符串反转输出的方法
2015/03/14 PHP
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
jQuery插件开发详细教程
2014/06/06 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
JS小数运算出现多为小数问题的解决方法
2016/06/02 Javascript
React创建组件的三种方式及其区别
2017/01/12 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
nodejs前端模板引擎swig入门详解
2018/05/15 NodeJs
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
简介JavaScript错误处理机制
2020/08/04 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
Pytorch 使用不同版本的cuda的方法步骤
2020/04/02 Python
Python内存映射文件读写方式
2020/04/24 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
开学典礼感言
2014/02/16 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
财务部总监岗位职责
2014/03/12 职场文书
金融专业求职信
2014/08/05 职场文书
新课培训心得体会
2014/09/03 职场文书
作风建设整改方案
2014/10/27 职场文书
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL