在实际使用时,可视化网络会对调试很有帮助,借助GitHub上一位大神的代码,可以实现pytorch上网络结构的可视化:
- visualize.py
from graphviz import Digraph
import torch
from torch.autograd import Variable
def make_dot(var, params=None):
""" Produces Graphviz representation of PyTorch autograd graph
Blue nodes are the Variables that require grad, orange are Tensors
saved for backward in torch.autograd.Function
Args:
var: output Variable
params: dict of (name, Variable) to add names to node that
require grad (TODO: make optional)
"""
if params is not None:
assert isinstance(params.values()[0], Variable)
param_map = {id(v): k for k, v in params.items()}
node_attr = dict(style='filled',
shape='box',
align='left',
fontsize='12',
ranksep='0.1',
height='0.2')
dot = Digraph(node_attr=node_attr, graph_attr=dict(size="12,12"))
seen = set()
def size_to_str(size):
return '('+(', ').join(['%d' % v for v in size])+')'
def add_nodes(var):
if var not in seen:
if torch.is_tensor(var):
dot.node(str(id(var)), size_to_str(var.size()), fillcolor='orange')
elif hasattr(var, 'variable'):
u = var.variable
name = param_map[id(u)] if params is not None else ''
node_name = '%s\n %s' % (name, size_to_str(u.size()))
dot.node(str(id(var)), node_name, fillcolor='lightblue')
else:
dot.node(str(id(var)), str(type(var).__name__))
seen.add(var)
if hasattr(var, 'next_functions'):
for u in var.next_functions:
if u[0] is not None:
dot.edge(str(id(u[0])), str(id(var)))
add_nodes(u[0])
if hasattr(var, 'saved_tensors'):
for t in var.saved_tensors:
dot.edge(str(id(t)), str(id(var)))
add_nodes(t)
add_nodes(var.grad_fn)
return dot
python-graphviz
: conda install -n pytorch python-graphviz
import torch
from torch.autograd import Variable
from MyNet import MyNet
from visualize import make_dot
x = Variable(torch.randn(1,22,224,224))#change 12 to the channel number of network input
model = MyNet()
y = model(x)
g = make_dot(y)
g.view()
可视化后的结果:
物联网时代,我们想把周边的嵌入式设备接入Internet,依托云平台提供的各种服务,实现对嵌入式设备的远程监测和控制,甚至是远程OTA 升级等。各大云平台厂商经常谈到的“云-管/网-边-端”是什么?我们如何将本地设备接入云平台呢?以OneNET 云平台为例,平台域和设备域分别如何配置才能让设备顺利接入云平台?物联网设备接入云平台常用MQTT 协议通信,Paho-MQTT 的实现原理是怎样的?OneNET SDK的实现逻辑是怎样的?我们如何开发应用实现数据点上传、响应下发命令、远程OTA 升级等功能呢?
最大化窗口:最大化最小化窗口: 最小化关闭窗口:关闭窗口 关闭窗口框架关闭关闭窗口框架关闭关闭窗口框架关闭无提示关闭窗口,把如下代码加入区域中 function shutwin(){closes.Click();return;} 关闭本窗口 简单的无提示关闭窗口代码: value="IE6最简单的无提示关闭窗口" >
int i,j,k,a[10]; for(i=0;i<10;i++){ scanf("%d",&a[i]); } for(i=0;i<10;i++){ for(j=0;j<10-i;j++){ if(a[j]>a[j+1]){ k=a[j]; a[j]=a[j+1]; a[j+1...
登录api.sap.com, 根据关键字SuccessFactors找到对应的API目录:找到foundation/Platform级别的API,进入之后,选择User Management:点击Logon,以使用API控制台自带的控制功能:点击Try Out, 就可以像使用postman一样,使用这个API控制台自带的测试功能了:$filter string里可以测试这个OD...
按钮既是标准控件,也是子窗口,窗口类名是button。Button 控件样式以BS开头,常用的有:样式说明BS_LEFT文本居左。BS_RIGHT文本居右。BS_CENTER文本水平居中(默认为 BS_CENTER)。BS_BOTTOM文本位于按钮底部。BS_TOP文本位于按钮顶部。
八领域边界追踪 C语言 图像处理算法
各位美友正在用着的微信提供了骰子,不过却不够专业,比如想要一次投多个或者除了 123456 以外的点数,生硬动画和简陋的外表也不能满足老手们挑剔的眼光。今天我就给各位美友推荐 Dice ,绝对是目前最专业的骰子应用,没有之一。逼真到令人感动模拟骰子的应用大家都用过,但我相信用游戏引擎做的模拟骰子应用你肯定没试过,你能相信 Dice 的开发者居然用上 Unity ,只为了达到完美的外表和手感?这逼真...
springboot+android 收参 传参
(SQL、SQLite、MySQL)递归查询、无限级查询、
MD5在线加密https://md5jiami.bmcx.com/MD5在线解密https://www.cmd5.com/
GCC provides quite a lot of builtin functions. These functions are part of standard C offered by the compiler and may come in various variants as per the gcc. These are also termed as hardware speci
问题: 写入MySQL时 出现 Incorrect datetime value: '' for column 'createTime' at row 1 user.setCreateTime(new Date()); user.setExpireTime(new Date());解决 ://转换时间格式SimpleDateFormat simpleDate...