maxnet学习
参考书《动手写深度学习》
分布式并行训练算法。
NDArray
和NumPy相互变换
1.将numpy转化为NDArray。
import numpy as np A=np.ones((2,3)) B=nd.array(A)
2.将NDArray转化为numpy
C.asnumpy(B)
自动求梯度步骤:
1,创建变量x,2,,申请存储梯度的内存;3,调用backward函数求梯度。
查找模块里所有可调用函数和类
使用dir函数。
例如:
from mxnet import nd print(dir(nd.random))
sequential()为串联各个层的容器,在构建神经网络时,在该容器中依次添加层。
在构建神经网络时,先导入模块,构建容器实例,在容器中添加层。
from mxnet.gluon import nn net=Sequential() net.add(nn.Dense(1))
net.initialize(init.Normal(sigma=0.01)) #初始化模型
loss=gloss.L2Loss() #平方差
利用CIFAR10数据集上预训练模型做目标识别:
1.显示图像
#导入包 import matplotlib.pyplot as plt from mxnet import gluon, nd, image from mxnet.gluon.data.vision import transforms from gluoncv import utils from gluoncv.model_zoo import get_model #加载图片 url = 'https://raw.githubusercontent.com/dmlc/web-data/master/gluoncv/classification/plane-draw.jpeg' im_fname = utils.download(url) img = image.imread(im_fname) plt.imshow(img.asnumpy()) plt.show()
运行上诉脚本,将从url网址下载图像到当前路径并显示。
训练,在终端输入如下指令
python train_cifar10.py --num-epochs 240 --mode hybrid -j 8 --batch-size 128 --wd 0.0001 --lr 0.1 --lr-decay 0.1 --lr-decay-epoch 80,160 --model cifar_resnet20_v1
MINC-2500
数据集,包含23类共2500张图片。
使用gluoncv实现yolov3
代码如下
from gluoncv import model_zoo,data,utils from matplotlib import pyplot as plt #导入必要的包 net=model_zoo.get_model("yolo3_darknet53_voc",pretrained=True) img_fname="/home/wmy/mxnet/dog.jpg" x,img=data.transforms.presets.yolo.load_test(img_fname,short=512) #获取模型预测结果 class_ids,class_scores,bounding_boxes=net(x) #绘制结果并显示 ax=utils.viz.plot_bbox(img,bounding_boxes[0],class_scores[0],class_ids[0],class_names=net.classes) plt.show()