博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
命令式和符号式混合编程
阅读量:6431 次
发布时间:2019-06-23

本文共 1709 字,大约阅读时间需要 5 分钟。

# 命令式和符号式编程def add_str():    return '''def add(a,b):    return a + b'''def fancy_func_str():    return '''def fancy_func(a, b, c, d):    e = add(a,b)    f = add(c,d)    g = add(e,f)    return g'''def evoke_str():    return add_str() + fancy_func_str() + '''print(fancy_func(1,2,3,4))'''prog = evoke_str()# print(prog)y = compile(prog,'','exec')# exec(y)from mxnet import nd,autograd,symfrom mxnet.gluon import nn,loss as glossdef get_net():    net = nn.HybridSequential()    net.add(nn.Dense(256,activation='relu'),            nn.Dense(128,activation='relu'),            nn.Dense(2))    net.initialize()    return netnet = get_net()X = nd.random.normal(shape=(1,512))print(net(X))# 通过net.hybridize()来编译和优化HybridSequential实例中的串联层的计算net.hybridize()print(net(X))# 对比import timedef benchmark(net, x):    start = time.time()    for i in range(1000):        _ = net(x)    nd.waitall()    return time.time() - startnet = get_net()print('before hybridizing: %.4f sec' % benchmark(net,X))net.hybridize()print('after hybridizing: %.4f sec' % benchmark(net,X))# 保存参数net.export('my_mlp')x = sym.var('data')print(net(x))
from mxnet.gluon import nn,lossfrom mxnet import nd,autogradclass HybirdNet(nn.HybridBlock):    def __init__(self, **kwargs):        super(HybirdNet,self).__init__(**kwargs)        self.hidden = nn.Dense(10)        self.output = nn.Dense(2)    def hybrid_forward(self, F, x, *args, **kwargs):        print('F: ',F)        print('x: ',x)        x = F.relu(self.hidden(x))        print('hidden: ',x)        return self.output(x)net = HybirdNet()net.initialize()X = nd.random.normal(shape=(1,4))print(X)print(net(X))# 编译优化net.hybridize()print(net(X))

 

转载于:https://www.cnblogs.com/TreeDream/p/10228894.html

你可能感兴趣的文章
类似微信的微会聊应用项目源码
查看>>
nginx中给目录增加密码保护实现程序
查看>>
参加51CTO学院软考培训,我通过啦
查看>>
Linux之HA高可用集群的基础概念总结
查看>>
Appboy 基于 MongoDB 的数据密集型实践
查看>>
写给自己的3句话
查看>>
应用安全的重要性!再怎么强调都不过分的5大理由
查看>>
用两个队列实现一个栈
查看>>
openstack neutron数据库
查看>>
ansible批量管理服务详解
查看>>
linux6.5安装oracle数据库12c
查看>>
exec $[] $(())
查看>>
linux终端介绍
查看>>
通过思科模拟器CISCO PACKET TRACER学习网络2——交换机的基本配置和telnet登陆
查看>>
百度索引量下降的原因及解决方法
查看>>
结束北漂之后的这半年
查看>>
PDF文件编辑技巧之PDF文件去除水印方法
查看>>
我的友情链接
查看>>
启动APACHE出现“error while loading shared libraries: libiconv.so.2”
查看>>
MFS文件系统安装指南
查看>>