Gluon是MXNet的高层封装,网络设计简单易用,与Keras类似。随着深度学习技术的普及,类似于Gluon这种,高层封装的深度学习框架,被越来越多的开发者接受和使用。
在开发深度学习算法时,必然会涉及到网络(symbol)和参数(params)的存储与加载,Gluon模型的存取接口,与MXNet略有不同。在MXNet体系中,网络与参数是分离的,这样的设计,有利于迁移学习(Transfer Learning)中的参数复用。
本文分别介绍MXNet和Gluon中网络和参数的存取方式。
在MXNet体系中,net = symbol + params。
本文地址:https://blog.csdn.net/caroline_wendy/article/details/80494120
MXNet
MXNet中网络和参数是分离的,这两部分需要分别存储和读取。
网络
MXNet的网络(symbol)使用json格式存储:
- 创建填充变量data,即
mx.sym.var('data')
; - 将填充变量置入网络,即
net_triplet(vd)
; - 获取填充之后的网络结构,转换为json对象,即
vnet.tojson()
; - 将json对象写入文件,即
write_line(json_file, sym_json)
。
则,最终的json文件就是MXNet的网络结构。
实现:
vd = mx.sym.var(