theano 这磨人的小妖精
Theano升级到1.0后,在import theano 时总会出现如下提醒,在没升级之前之前是没有的.
>> import theano
Using cuDNN version 5110 on context None
Mapped name None to device cuda: GeForce GTX 960M (0000:01:00.0)
看到这提示感觉很不爽,所以按照上面的提示去试依旧没有解决.
首先按照给出的提示,我重新安装cudnn5.1.10,安装完成之后又出现了下面的情况:
>> import theano
Using cuDNN version 5105 on context None
Mapped name None to device cuda: GeForce GTX 960M (0000:01:00.0)
所以我觉得这和cudnn版本没有任何关系.
按照网上的一个脚本s.py,如下:
from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time
vlen = 10 * 96 * 768 # 10 x #cores x # threads per core
iters = 1000
rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in range(iters):
r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
print('Used the cpu')
else:
print('Used the gpu')
用来检测使用cpu计算还是gpu.
根目录下的.theanorc文件配置如下:
[global]
device=cuda
floatX=float32
force_device=True
[nvcc]
fastmath = True
执行s.py,结果如下:
[GpuElemwise{exp,no_inplace}(<GpuArrayType<None>(float32, vector)>), HostFromGpu(gpuarray)(GpuElemwise{exp,no_inplace}.0)]
Looping 1000 times took 0.653164 seconds
Result is [ 1.23178029 1.61879349 1.52278066 ..., 1.57353055 1.96092069
2.0558939 ]
Used the cpu
然后我修改了.theanorc文件,如下:
[global]
device=cpu
floatX=float32
force_device=True
[nvcc]
fastmath = True
执行s.py,结果如下:
[Elemwise{exp,no_inplace}(<TensorType(float32, vector)>)]
Looping 1000 times took 13.154794 seconds
Result is [ 1.23178029 1.61879337 1.52278066 ..., 1.57353067 1.96092069
2.0558939 ]
Used the cpu
很神奇吧,明明两次耗时差异很大,
Looping 1000 times took 0.653164 seconds
Looping 1000 times took 13.154794 seconds
为何结果输出相同,都是used cpu?
所以,我觉得这个脚本是错误的.
在解决这个问题过程中,我发现好多人都遇到了同样的问题,所以记录下来,以供大家参考,如果说错了,也请大家不吝指出.
theano 这磨人的小妖精相关推荐
- REM,你这磨人的小妖精!
前言 移动端的崛起,给了我们前端更大的舞台,与此同时,也给我们带来了一系列头疼的问题,移动端适配就是其中之一,目前市面上最常用的方案即是REM适配. 为什么说她是一个磨人的小妖精?因为她确实让人又爱又 ...
- 磨人的小妖精 别让我遇到你
我叫颈椎病,今年有5000多岁了,我的子孙散布在世界各地,每当我看到人类颈背痛苦.上肢无力.手指发麻.下肢乏力.行走艰难.头晕.厌恶.吐逆,乃至视物含糊.心动过速及吞咽艰难的时候我都很开心.因为任何医 ...
- 「磨人的小妖精」JavaWeb如何学习?先肝了这套教程
都说一入Java深似海,从此代码是爱人,但是学习的过程却从来都不轻松. 当下,越来越多的互联网企业,招聘Java工程师时,明确要求需熟练掌握JavaWeb技术.作为衔接前后端的重要一环,JavaWeb ...
- 你这磨人的小妖精——选中文本并标注的实现过程
需求背景:给现有的页面加上标注解读功标注一段文本的功能:选中一段文字,在光标结束位置旁边弹出小tips,有一个按钮表示添加解读.添加了解读后,那段文字高亮(加上下划线).此后每次页面loaded,被加 ...
- 聊聊「游戏」这个磨人的小妖精
引言:此文是我的「读书会」里一份优秀作业,刘昊男同学作品.对于游戏,我记得之前看过「六原则」,不妨放在开头: 研究不熟悉的东西使之变为熟悉的东西: 将熟悉的东西作有规律的重复: 在重复的过程中尽可能作 ...
- 烦人的“小妖精”:浅谈小红点的设计
导语 随着各类App的业务功能不断丰富,小红点已经成为互联网从业者们最常使用的运营工具之一,每当有新的运营内容或新功能上线,大家的做法往往是"在那放个红点就行了".然而简单粗暴的形 ...
- 递归这个磨机的小妖精
神奇的递归 费了好大的劲才对递归算法有了点浅显的理解,在这与大家分享一下典型例子的代码. 九九乘法表 经典循环算法: for i in range(1,10):for j in range(1,i+1 ...
- 蜜糖?砒霜? 区块链真skr磨人小妖精!
哪里有天才,我是把别人喝咖啡的工夫都用在工作上的.──鲁迅 中国软件网每日精选文集 "大家都在讨论区块链, 但我还是搞不懂它是什么, 和我又有什么关系." 今天各位"吃 ...
- Tensflow版本升级就是磨人的妖精——regular能用吗?
磨人的妖精,版本带来的伤筋动骨,有发展就有版本升级,自己模块有方法变化.不同模块之间还有相互依赖变化,coding中有1/3的时间都是在解决版本升级后新特性学习问题解决,1/3是在debug,真正写核 ...
最新文章
- 干掉 Navicat:这个 IDEA 的兄弟真香!
- Java实现敏感词过滤 - IKAnalyzer中文分词工具
- 4.1)深度卷积网络:卷积神经网络基础
- 雷军穿上印度传统服装:网友以为《西游记》拍新版了 这画面感受下
- java程序员语录_2019精选java程序员语录大全
- 学习笔记1:迟滞电压比较器
- bzoj4816 [Sdoi2017]数字表格(反演)
- Java项目实战【超级详细】
- 如何清理Linux跟下的垃圾文件
- sdust 2410 Mine Number
- python自动定期清理日志脚本支持Linux+windows
- 微信登录流程图(转)
- VAPS XT开发入门教程00:基本介绍
- 《Mysql是怎样运行的》读书笔记五
- 腾讯安心生态联盟正式成立 联动伙伴开放技术助力“数字兴农”
- 浏览器常用的图片优化 雪碧图/实体字符/svg
- 《道德经》第二十二章
- 职业选择心理测试软件,职业选择的心理测试题
- CVPR2016跟踪算法Staple的配置(Staple: Complementary Learners for Real-Time Tracking)
- prosail模型敏感性分析