mxnet
mxnet深度学习平台知识分享
AI算法网奇
本人曾是一名普通会计,自学编程和算法,15年封闭苦学,现在是一名资深算法工程师,CSDN博客专家。
本人将多年的工作经验整理出来,从入门知识到高阶技巧,乃至最前沿研究成果,皆有分享,为国内IT行业自强之路,尽个人微薄之力。
展开
-
mxnet转onnx
转换代码:import numpy as npimport mxnet as mxfrom mxnet.contrib import onnx as onnx_mxnet sym = './model-symbol.json'params = './model-0000.params'input_shape = (1, 3, 112, 112)onnx_file = './mobilefacenet.onnx' converted_model_path = onnx_mxnet.e转载 2022-02-22 10:49:19 · 1734 阅读 · 0 评论 -
mxnet制作人脸识别训练集
生成train.lstimport argparseimport globimport osimport numpy as npimport cv2import mxnet as mxdef get_id(): path_f=r"G:\data\5w" # files = glob.glob(path_f + "/*/*/*/*[bmp,jpg,png]", recursive=True) # find file files = glob.glob(..原创 2021-09-02 11:32:26 · 2071 阅读 · 0 评论 -
mxnet 显存配置,cpu过高配置
mxnet 环境变量配置(显存)os.environ['MXNET_UPDATE_ON_KVSTORE'] = "0"os.environ['MXNET_EXEC_ENABLE_ADDTO'] = "1"os.environ['MXNET_USE_TENSORRT'] = "0"os.environ['MXNET_GPU_WORKER_NTHREADS'] = "2"os.environ['MXNET_GPU_COPY_NTHREADS'] = "1"os.environ['MXNET..原创 2021-08-27 11:38:50 · 1907 阅读 · 0 评论 -
MXNet半精度(FP16)
MXNet半精度训练1.先决条件Volta range of Nvidia GPUs (e.g. AWS P3 instance)CUDA 9 or highercuDNN v7 or higher2.使用Gluon API训练和前向推理2.1训练使用cast将网络设置为float16精度进行训练net.cast('float16')data = data.astype('float16', copy=False)optimizer = mx.optimizer.create..转载 2021-08-19 19:16:43 · 1840 阅读 · 1 评论 -
mxnet 查看中间层结果
查看权重在训练过程中,有时候我们为了debug而需要查看中间某一步的权重信息,在mxnet中,我们可以很方便的调用get_params()方法来得到权重信息。'''查看权重示例代码转载时注明地址:http://blog.csdn.net/u010414386?viewmode=contents'''import mxnet as mxsym, arg_params, aux_params = mx.model.load_checkpoint('resnet-50',0)#载入模型m..原创 2021-08-18 23:35:38 · 1876 阅读 · 0 评论 -
mxnet根据相似度进行人脸样本对图片清理
清理的角度:找出 ID (gallery) 和它的 prob 最不相似 的 数据 (可能是标注错误,不同ID的数据错误混杂等)找出 ID 和别的 prob 最相似 的 数据 (可能是标注错误,数据重复拷贝,同一个ID多次采集等)找出ID与ID之间最相似的。也是为了排除重复数据或者重复采集下面的方法主要关注角度1、角度3 ,实际中 角度2 也需要非常关注!角度1背景:每个ID有一张ID图片和多张prob图片,id图片命名例如:AA20210501S0338.jpg prob图片命名例如:A..转载 2021-06-24 15:44:20 · 1825 阅读 · 0 评论 -
horovod安装
pip inshttps://pypi.org/project/horovod/#files原创 2021-06-04 21:17:52 · 2820 阅读 · 2 评论 -
mxnet 卷积层和BN 合并
import osimport os.path as ospimport mxnet as mximport jsonimport sysimport numpy as npimport copy import fresnetdef merge_bn(args, auxs, conv_name, bn_prefix): conv_weights = args[conv_name+"_weight"].asnumpy() gamma = args[bn_prefix...原创 2021-05-20 00:27:44 · 1877 阅读 · 0 评论 -
mxnet slice_axis
mxnetslice_axisbegin end参数,左开右闭,左边包含,右边不包含import mxnet as mxa = mx.nd.arange(18).reshape((3,2,3))print(a.shape)print(a)d = mx.nd.slice_axis(a, axis=0, begin=0, end=2)data=d.asnumpy()print(data)...原创 2021-05-17 14:26:54 · 2250 阅读 · 0 评论 -
mxnet makeloss
# -*- coding=utf-8 -*-import mxnet as mximport numpy as npimport logginglogging.basicConfig(level=logging.INFO)x = mx.sym.Variable('data')y = mx.sym.FullyConnected(data=x, num_hidden=1)label = mx.sym.Variable('label')loss = mx.sym.MakeLoss(m...原创 2021-05-15 23:49:58 · 1992 阅读 · 1 评论 -
mxnet:mx.sym.BlockGrad理解
解释:我们知道现在深度学习的框架是计算图,由节点和路径组成。在前向和反向的时候都是通过图路径传递的,那么这个函数是用在反向传播的时候,字面意思就是阻塞梯度传播。举例:输入两个点,输出一个点,如下图所示:正常反向传播公式就是:y=3*a+4*b在正常的反向传播的时候,a的偏导就是3,b的偏导为4(假设都是标量的情况下)。代码测试:import mxnet as mximport numpy as npv1=np.array([[1,2]])v2=np.a...转载 2021-05-15 23:28:37 · 1928 阅读 · 1 评论 -
arcface mxnet转onnx
目录转换的网络:转onnx并列出demo转换的网络:mobilefacenet-res2-6-10-2-dim512https://github.com/jacke121/arcface_retinaface_mxnet2onnx转onnx并列出demoimport cv2import numpy as npimport osimport timeimport mxnet as mxfrom mxnet.contrib import onnx as on..原创 2021-05-15 22:56:20 · 2071 阅读 · 1 评论 -
mxnet pick挑选
代码格式,x,y都需要转成mxnet nd.array形式import mxnet as mximport mxnet.gluon.loss as gloss#from mxnet import ndx =np.array([[ 1., 2.], [ 3., 4.], [ 5., 6.]])x = mx.nd.array(x)y=np.array([ 0, 1,1])y=mx.nd.array(y)result= nd.pick(x, y,1)...原创 2021-05-13 10:52:50 · 2492 阅读 · 0 评论 -
mxnet可视化模型中间层feature map输出
注:model输入 112x112 保存的图片可能是白色的(这个还没有修复),但是在pycharm中运行时可以通过scientific tool窗口看到#构造辅助函数做预处理, 注意mxnet中为通道在前格式即BCHW, 输入时要对通道维度调整,#其预训练模型采用减均值除方差的标准化预处理(均值标准差使用imagenet数据集的[0.485, 0.456, 0.406], [0.229, 0.224, 0.225])#mxnet使用专有数据类型nd.arrayimport cv2f...转载 2021-05-13 10:26:46 · 2116 阅读 · 0 评论 -
mxnet各种归一化:batch norm, l2 norm和mxnet.nd.L2Normalization
batch norm: mx.nd.BatchNorm类似于在一个batch里面对样本减均值、除方差。l2 norm: mx.nd.L2Normalization对向量进行归一化:每一行向量中的每个元素除以向量的模长。变成长度为1、带有方向的单位向量。mx.nd.norm用于沿指定axis求范数,默认求整个矩阵的L2范数,变成一个值(标量)。(L2范数)对应欧式距离。nd.L2Normalization(a,mode=‘instance’)# nd.L2Normalization(a,mode='.转载 2021-05-13 10:21:00 · 2277 阅读 · 0 评论 -
mxnet CrossEntropy 测试
from __future__ import absolute_importfrom __future__ import divisionfrom __future__ import print_functionimport os# import sys# import mathimport mxnet as mximport mxnet.gluon.loss as gloss# import numpy as npa = np.zeros((2,3))b = np.zer...原创 2021-05-12 16:54:29 · 1854 阅读 · 0 评论 -
Mxnet Focal Loss实现
import mxnet as mximport numpy as npclass FocalLoss(mx.metric.EvalMetric): def __init__(self, num=None): super(FocalLoss, self).__init__('focalloss', num) self.eps = 1e-12 self.gamma = 2 self.alpha = 0.25 def...原创 2021-05-12 00:01:19 · 1819 阅读 · 0 评论 -
mxnet METRIC自定义评估验证函数
import mxnet as mxclass Siamise_metric(mx.metric.EvalMetric): def __init__(self, name='siamise_acc'): super(Siamise_metric, self).__init__(name=name) def update(self, label, pred): preds = pred[0] labels = label[0] ...原创 2021-05-06 22:09:15 · 2002 阅读 · 1 评论 -
MXNET gluon自定义损失函数
在学习李沐老师的目标检测篇章目标检测中由于负类较多,正类较少,我们可以适当的减少对负类的惩罚因此根据视频教程我们来重新写一个损失函数通常mxnet的损失函数需要继承Loss类from mxnet.gluon.loss import Lossclass FocalLoss(gluon.loss.Loss): def __init__(self, axis=-1, alpha=0.25, gamma=2, batch_axis=0, **kwargs): su...转载 2021-05-06 21:52:19 · 2055 阅读 · 0 评论 -
mxnet is not presented
mod_new.set_params(arg_params_new,aux_params_new,allow_missing=False)报错:is not presented需要这个参数,没有提供。原创 2021-05-06 16:41:35 · 1926 阅读 · 0 评论 -
insightface mxnet训练 out of Memory
正确代码: cvd ="0,1"# os.environ['CUDA_VISIBLE_DEVICES'].strip() if len(cvd)>0: for i in cvd.split(','): ctx.append(mx.gpu(int(i))) if len(ctx)==0: ctx = [mx.cpu()] print('use cpu') else: prin...原创 2021-05-04 17:06:09 · 1896 阅读 · 0 评论 -
insightface mxnet训练 旧版
from __future__ import absolute_importfrom __future__ import divisionfrom __future__ import print_functionimport osimport sysimport mathimport randomimport loggingimport pickleimport numpy as npimport mfn_55from common import verification,...原创 2021-05-04 17:04:35 · 2081 阅读 · 1 评论 -
mxnet输出训练loss
还没看懂,晚上接着看https://blog.csdn.net/fuwenyan/article/details/79902002最近两天刚开始用mxnet,训练时发现log只有accuracy,没有loss,训练半天到跑验证的时候才发现loss为NAN了。这样不能随时看到loss的变化而及时做出调整,比较浪费时间精力。在python mxnet安装路径下有相关接口和文件。我用的Anaconda2,路径为Anaconda2\Lib\site-packages\mxnet\me...原创 2021-04-30 18:46:18 · 2045 阅读 · 1 评论 -
mxnet自定义训练日志
batch训练回调函数: def _batch_callback(param): #global global_step global_step[0]+=1 mbatch = global_step[0] for _lr in lr_steps: if mbatch==args.beta_freeze+_lr: opt.lr *= 0.1 print('lr change to', opt.lr)原创 2021-04-30 18:17:17 · 1908 阅读 · 1 评论 -
module ‘mxnet.symbol‘ has no attribute ‘LSoftmax‘
module 'mxnet.symbol' has no attribute 'LSoftmax'原创 2021-04-29 18:13:58 · 2134 阅读 · 0 评论 -
mxnet常规优化器用法
adam优化器:optimizer = mx.optimizer.Adam(learning_rate=adam_lr, wd=weight_decay)原创 2021-04-27 23:34:33 · 2015 阅读 · 0 评论 -
mxnet导出onnx Symbol and params files provided are invalid
import mxnet as mximport numpy as npimport sysimport osimport argparseimport onnx print('mxnet version:', mx.__version__)print('onnx version:', onnx.__version__) from mxnet.contrib import onnx as onnx_mxnet from onnx import checker ...原创 2021-04-26 15:20:19 · 1982 阅读 · 0 评论 -
mxnet 衰减学习率
一个是使用回调功能在每个批次/时代的结束:sgd_opt = opt.SGD(learning_rate=0.005, momentum=0.9, wd=0.0001, rescale_grad=(1.0/batch_size)) model = mx.model.FeedForward(ctx=gpus, symbol=softmax, num_epoch=num_epoch, optimizer=sgd_opt, initializer=mx.init.Uniform(0....原创 2021-04-25 08:23:10 · 1962 阅读 · 0 评论 -
mxnet优化器 SGD_GC
mxnet优化器 sgd_gc代码:原文:https://github.com/mnikitin/Gradient-Centralization调用代码:import optimizeropt_params = {'learning_rate': 0.001}sgd_gc = optimizer.SGDGC(gc_type='gc', **opt_params)sgd_gcc = optimizer.SGDGC(gc_type='gcc', **opt_params)adam_gc =原创 2021-04-23 18:20:29 · 2056 阅读 · 0 评论 -
RetinaFace Mxnet转TensorRT
文章目录RetinaFace MXNet模型转ONNX转TensorRT1. github开源代码2. MXNet模型转ONNX模型3. ONNX模型转TensorRT模型3.1 概述3.2 编译3.3 运行4. 推理结果RetinaFace MXNet模型转ONNX转TensorRT1. github开源代码RetinaFace TensorRT推理的开源代码位置在https://github.com/linghu8812/tensorrt_inference/tree/mas...转载 2021-04-18 09:20:39 · 2232 阅读 · 2 评论 -
insightface mxnet训练horovod版
训练入口:recognition/partial_fc/mxnet/train_memory.py原创 2021-04-16 23:36:16 · 1913 阅读 · 2 评论 -
mxnet迁移学习 注释版
sym, arg_params, aux_params = mx.model.load_checkpoint(r"E:\jinji\AidLearning-FrameWork-master\src\facencnn\models\mv2_55\model", 0) sym_new=get_symbol(512) mod_new=mx.mod.Module(symbol=sym_new,context=[mx.cpu()])#,label_names=None) #...原创 2021-04-16 17:12:23 · 1841 阅读 · 0 评论 -
mxnet symbol图的 变量 shape
import mxnet as mxa = mx.sym.Variable('data')b = mx.sym.FullyConnected(data=a,name='fc1',num_hidden=100)data_shape = {'data':(256,64)}arg_shape,_,_ = b.infer_shape(**data_shape)# b.list_arguments() # 列出symbol中的所有参数,这里是输入以及全连接层的权值和偏...原创 2021-04-16 16:17:13 · 2086 阅读 · 0 评论 -
mxnet Module load
load函数:其实就是sym, arg_params, aux_params = mx.model.load_checkpoint(r"mv2_55\model", 0)load源码: @staticmethod def load(prefix, epoch, load_optimizer_states=False, **kwargs): """Creates a model from previously saved checkpoint. .原创 2021-04-16 15:17:12 · 1990 阅读 · 0 评论 -
mxnet arg_params, aux_params
arg_params, aux_params原创 2021-04-16 14:59:23 · 2167 阅读 · 0 评论 -
mxnet DepthwiseConv2D
在https://blog.csdn.net/zhqh100/article/details/90376732中介绍MobileNet时,提到DepthwiseConv2D,这是keras中的API,那mxnet中该 API 叫什么名字呢?我跟踪了一下代码,以及打印summary之类的,基本搞清楚了,mxnet 中无论是DepthwiseConv2D 还是Conv2D,统一都叫做Conv2D,参考如下调用代码(/home/luke/miniconda3/lib/python3.6/si...转载 2021-04-15 11:15:03 · 1952 阅读 · 0 评论 -
assert self.binded
assert self.binded报错代码:mod_new.bind(for_training=False,data_shapes=[('data',(1,3,data_shape_w,data_shape_w))],label_shapes=mod_new.label_shapes) File "D:\Anaconda3\lib\site-packages\mxnet\module\module.py", line 231, in label_shapes assert se...原创 2021-04-13 20:56:25 · 1882 阅读 · 0 评论 -
mxnet参数初始化,查看
mxnet的模型参数初始化方法总结夜雨_小学徒 2020-04-28 15:34:57 614 收藏分类专栏: 机器学习 文章标签: mxnet deep learning 深度学习版权1.mxnet框架的初始化方法在类mxnet.initializer中,参考官方文档https://mxnet.apache.org/api/python/docs/api/initializer/index.html#mxnet.initializer.Xavier2.具体方法(1)Biline...原创 2021-04-13 00:42:46 · 2059 阅读 · 0 评论 -
mxnet测试网络速度
# -*- coding: utf-8 -*-"""File Name: calculate_flops.pyAuthor: liangdepengmail: liangdepeng@gmail.com"""import mxnet as mximport argparseimport numpy as npimport jsonimport redef parse_args(): parser = argparse.ArgumentParser(descript...原创 2021-04-12 23:54:11 · 1854 阅读 · 0 评论 -
mxnet迁移学习
# loading predict moduledata_shape_G = 96Batch = namedtuple('Batch',['data'])sym, arg_params, aux_params = mx.model.load_checkpoint(prefix=r"~/meh_cla",epoch=2)train,val = get_iterators(batch_size=batch_size, data_shape=(3, 96, 96))train = Multi_...原创 2021-04-12 23:27:09 · 1995 阅读 · 0 评论