python带参数装饰器使用
# -*- coding: utf-8 -*
"""TensorFlow指定使用GPU工具类 author: Jill usage:
方法上加@tf_with_device(device)
具体见本文件demo
"""
from functools import wraps import tensorflow as tf def tf_with_device(device):
"""
Using the special device. args:
device : gpu或者cpu名
""" def decorate(func): @wraps(func)
def wrapper(*args, **kwargs):
with tf.device(device):
result = func(*args, **kwargs)
return result return wrapper
return decorate # demo
@tf_with_device('/cpu:0')
def calculate():
c = []
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3])
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2])
c.append(tf.matmul(a, b))
# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# Runs the op.
result = sess.run(tf.add_n(c))
print(result)
return result a = calculate()
print("result:\n" + str(a))
遇到一个在TensorFlow里使用GPU的需求,看了下官网的使用介绍(https://www.tensorflow.org/guide/using_gpu?hl=zh-cn)然后就敲了楼上的那些代码。。。突然陷入沉思,真的是这么用的吗?_?,好像还不如直接在程序里代码块上加
tf.device(device)...
啊。。。求解答。。。
python带参数装饰器使用的更多相关文章
- python带参装饰器的改良版
		
简单点就是这种 def deco2(param=1): def _deco2(fun): def __deco2(*args, **kwargs): print (param) fun(*args, ...
 - python基础之带参数装饰器和迭代器
		
带参数的装饰器:就是在原装饰器外再包一层函数 def auth(driver='file'): def auth2(func): def wrapper(*args,**kwargs): name=i ...
 - python高级之装饰器
		
python高级之装饰器 本节内容 高阶函数 嵌套函数及闭包 装饰器 装饰器带参数 装饰器的嵌套 functools.wraps模块 递归函数被装饰 1.高阶函数 高阶函数的定义: 满足下面两个条件之 ...
 - 第二篇:python高级之装饰器
		
python高级之装饰器 python高级之装饰器 本节内容 高阶函数 嵌套函数及闭包 装饰器 装饰器带参数 装饰器的嵌套 functools.wraps模块 递归函数被装饰 1.高阶函数 高阶函 ...
 - python闭包和装饰器
		
本文目录: 1. 闭包的解析和用法 2. 函数式装饰器 3. 类装饰器 一.闭包 闭包是一种函数,从形式上来说是函数内部定义(嵌套)函数,实现函数的扩展.在开发过程中,考虑到兼容性和耦合度问题,如果想 ...
 - python学习day14 装饰器(二)&模块
		
装饰器(二)&模块 #普通装饰器基本格式 def wrapper(func): def inner(): pass return func() return inner def func(): ...
 - Python迭代器,生成器,装饰器
		
迭代器 通常来讲从一个对象中依次取出数据,这个过程叫做遍历,这个手段称为迭代(重复执行某一段代码块,并将每一次迭代得到的结果作为下一次迭代的初始值). 可迭代对象(iterable):是指该对象可以被 ...
 - python三大器(装饰器/生成器/迭代器)
		
1装饰器 1.1基本结构 def 外层函数(参数): def 内层函数(*args,**kwargs); return 参数(*args,**kwargs) return 内层函数 @外层函数 def ...
 - python学习Day14  带参装饰器、可迭代对象、迭代器对象、for 迭代器工作原理、枚举对象、生成器
		
复习 函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.返回内部函数对象----> 延迟执行, 开放封闭原则: 功能可以拓展,但源代 ...
 
随机推荐
- git中的bug分支和Feature分支
			
/*游戏或者运动才能让我短暂的忘记心痛,现如今感觉学习比游戏和运动还重要——曾少锋*/ 如果对于分支还不太明白的学者.请先参考:http://www.cnblogs.com/zengsf/p/7512 ...
 - JSON-java
			
import net.sf.json.JSONArray; import net.sf.json.JSONObject; JSONObject jsonObject1 = new JSONObject ...
 - hdu 1723 DP/递推
			
题意:有一队人(人数 ≥ 1),开头一个人要将消息传到末尾一个人那里,规定每次最多可以向后传n个人,问共有多少种传达方式. 这道题我刚拿到手没有想过 DP ,我觉得这样传消息其实很像 Fibonacc ...
 - Android已有的原生Camera框架中加入自己的API的实现方案。
			
版权声明:本文为CSDN博主(天才2012)原创文章.未经博主同意不得转载. https://blog.csdn.net/gzzaigcn/article/details/25707389 在 ...
 - atitit.加入win 系统服务 bat批处理程序服务的法总结instsrv srvany  java linux
			
atitit.加入win 系统服务 bat批处理程序服务的法总结instsrv srvany java linux 系统服务不同于普通视窗系统应用程式.不可能简简单单地通过执行一个EXE就启动视窗系 ...
 - Linux部署禅道Steps&Q&A
			
1.查看Linux的位数: getconf LONG_BIT 结果:32/64 2. 禅道开源版安装包下载 Linux 64位 下载站点1: http://sourceforge.net/projec ...
 - S5PV210 移植无线wifi网卡 MT7601
			
一.准备工作 1.MT7601驱动下载 点击下载 2.插入usb WiFi 启动开发板linux,lsusb查看usb驱动 Bus 001 Device 003: ID 148f:7601看到的是该驱 ...
 - centos 修改host
			
centos 修改host vi /etc/hosts添加一行127.0.0.1 test.com /etc/rc.d/init.d/network restart
 - HBase的Scan
			
HBase的Scan和Get不同,前者获取数据是串行,后者则是并行:是不是有种大跌眼镜的感觉? Scan有四种模式:scan,(Table)snapScan,(Table)scanMR,snapsho ...
 - postman环境变量的设置
			
相同的api接口因为部署环境不同,分为test和fromal 不仅重复,还容易出错 下面来介绍一下Postman的一个小技巧来解决这种问题: 设置环境变量 Tips: 不是在OS中设置环境变量哦 ...