HybridBlock supports forwarding with both Symbol and NDArray
gluon/image_classification.py代码有这么一段:
import mxnet as mx from mxnet.gluon.model_zoo import vision as models ... net = models.get_model('vgg11', context, opt) # 这里得到的是gluon的模型 ... data = mx.sym.var('data') # symbol out = net(data) # 这里把symbol传到了gluon模型里? softmax = mx.sym.SoftmaxOutput(out, name='softmax') mod = mx.mod.Module(softmax, context=context) mx.viz.plot_network(softmax).view() #打印出来symbol模型结构
symbol传到了gluon模型里?深感疑惑,看了一下api发现可以的:
首先是看到get_model方法返回的是gluon.HybridBlock类型:
而HybridBlock是同时支持Symbol和NDArray的!:
所以这么搞是没问题的。
所以这个代码其实有3种训练模式: symbolic(符号式-类似tf)、hybrid(混合式-mx特性)、imperative(交互式-类似pytorch)
if opt.mode == 'symbolic': # 符号式 data = mx.sym.var('data') if opt.dtype == 'float16': data = mx.sym.Cast(data=data, dtype=np.float16) out = net(data) if opt.dtype == 'float16': out = mx.sym.Cast(data=out, dtype=np.float32) softmax = mx.sym.SoftmaxOutput(out, name='softmax') mod = mx.mod.Module(softmax, context=context) train_data, val_data = get_data_iters(dataset, batch_size, opt) mod.fit(train_data, eval_data=val_data, num_epoch=opt.epochs, kvstore=kv, batch_end_callback = mx.callback.Speedometer(batch_size, max(1, opt.log_interval)), epoch_end_callback = mx.callback.do_checkpoint('image-classifier-%s'% opt.model), optimizer = 'sgd', optimizer_params = {'learning_rate': opt.lr, 'wd': opt.wd, 'momentum': opt.momentum, 'multi_precision': True}, initializer = mx.init.Xavier(magnitude=2)) mod.save_parameters('image-classifier-%s-%d-final.params'%(opt.model, opt.epochs)) else: if opt.mode == 'hybrid': # 混合式 net.hybridize() train(opt, context) # 交互式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架