关于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利用多进程将大量数据放入有限内存的教程
Apr 01 Python
用实例分析Python中method的参数传递过程
Apr 02 Python
Python使用PIL库实现验证码图片的方法
Mar 11 Python
解决PyCharm中光标变粗的问题
Aug 05 Python
python不换行之end=与逗号的意思及用途
Nov 21 Python
python使用for循环计算0-100的整数的和方法
Feb 01 Python
Python3离线安装Requests模块问题
Oct 13 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
Python错误的处理方法
Jun 23 Python
python中数字是否为可变类型
Jul 08 Python
Python如何对齐字符串
Jul 30 Python
Lombok插件安装(IDEA)及配置jar包使用详解
Nov 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 广告调用类代码(支持Flash调用)
2011/08/11 PHP
php实现mysql封装类示例
2014/05/07 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
2015/11/10 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
Javascript 闭包详解及实例代码
2016/11/30 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
python登录并爬取淘宝信息代码示例
2017/12/09 Python
Django视图扩展类知识点详解
2019/10/25 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
linux系统都有哪些运行级别
2012/04/15 面试题
仓库主管的岗位职责
2013/12/04 职场文书
公司开业庆典主持词
2014/03/21 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
建筑管理专业求职信
2014/07/28 职场文书
铁路安全反思材料
2014/12/24 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers
PHP命令行与定时任务
2021/04/01 PHP
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技
Python实现视频自动打码的示例代码
2022/04/08 Python