关于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实现生成简单的Makefile文件代码示例
Mar 10 Python
Python IDE PyCharm的基本快捷键和配置简介
Nov 04 Python
获取python的list中含有重复值的index方法
Jun 27 Python
解决pyttsx3无法封装的问题
Dec 24 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
Jun 03 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
Jun 14 Python
Python csv模块使用方法代码实例
Aug 29 Python
python实现在线翻译功能
Mar 03 Python
python3通过udp实现组播数据的发送和接收操作
May 05 Python
python开发前景如何
Jun 11 Python
利用python调用摄像头的实例分析
Jun 07 Python
Python中Numpy和Matplotlib的基本使用指南
Nov 02 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下正则来匹配dede模板标签的代码
2010/08/21 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
CSS常用网站布局实例
2008/04/03 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
React倒计时功能实现代码——解耦通用
2020/09/18 Javascript
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
2014/04/25 Python
Python批量转换文件编码格式
2015/05/17 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
Python新手学习函数默认参数设置
2020/06/03 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
顺丰快递Java软件工程师面试题
2015/07/31 面试题
项目经理岗位职责
2013/11/11 职场文书
校园达人秀策划书
2014/01/12 职场文书
中学家长会邀请函
2014/01/17 职场文书
铁路个人事迹材料
2014/01/30 职场文书
老公写给老婆的检讨书
2015/05/06 职场文书
小学感恩主题班会
2015/08/12 职场文书
Vue3 Composition API的使用简介
2021/03/29 Vue.js