关于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使用random和tertools模块解一些经典概率问题
Jan 28 Python
Python用GET方法上传文件
Mar 10 Python
python中的lambda表达式用法详解
Jun 22 Python
Python表示矩阵的方法分析
May 26 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
NumPy 如何生成多维数组的方法
Feb 05 Python
Python基于更相减损术实现求解最大公约数的方法
Apr 04 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
May 10 Python
python爬虫模拟浏览器的两种方法实例分析
Dec 09 Python
Django+Celery实现定时任务的示例
Jun 23 Python
Python必备技巧之函数的使用详解
Apr 04 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
Php Cookie的一个使用注意点
2008/11/08 PHP
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
7个Javascript地图脚本整理
2009/10/20 Javascript
jQuery ajax cache缓存问题
2010/07/01 Javascript
子页向父页传值示例
2013/11/27 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
vue.js实现条件渲染的实例代码
2017/06/22 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
微信小程序地图(map)组件点击(tap)获取经纬度的方法
2019/01/10 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
python中私有函数调用方法解密
2016/04/29 Python
基于Python打造账号共享浏览器功能
2019/05/30 Python
python中调试或排错的五种方法示例
2019/09/12 Python
手机使用python操作图片文件(pydroid3)过程详解
2019/09/25 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
python 弧度与角度互转实例
2020/04/15 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
Python实现淘宝秒杀功能的示例代码
2021/01/19 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
机电一体化应届生求职信范文
2014/01/24 职场文书
初三班主任寄语大全
2014/04/04 职场文书
会计求职自荐信
2014/06/20 职场文书
入党团支部推荐意见
2015/06/02 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
win10截图快捷键win+shift+s没有反应无法截图怎么解决?
2022/08/14 数码科技