JNingWei
码龄5年
  • 3,157,439
    被访问
  • 727
    原创
  • 34,538
    排名
  • 1,388
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2017-06-17
博客简介:

JNing

查看详细资料
  • 6
    领奖
    总分 2,583 当月 60
个人成就
  • 博客专家认证
  • 获得1,526次点赞
  • 内容获得455次评论
  • 获得2,955次收藏
  • GitHub 获得231Stars
创作历程
  • 81篇
    2021年
  • 56篇
    2020年
  • 2篇
    2019年
  • 165篇
    2018年
  • 438篇
    2017年
成就勋章
TA的专栏
  • 移动端
    4篇
  • 美妆
    1篇
  • windows
    4篇
  • ios
    1篇
  • 语义分割
    36篇
  • 论文算法
    48篇
  • 深度学习
    79篇
  • Idea与思考
    8篇
  • Git 使用
    17篇
  • TensorFlow 框架
    55篇
  • Python 编程
    133篇
  • OpenCV-Python
    21篇
  • 图像处理
    24篇
  • Numpy
    11篇
  • Bash
    12篇
  • Linux 使用
    86篇
  • macOS 使用
    12篇
  • PyTorch 框架
    15篇
  • Caffe 框架
    2篇
  • OpenCV-C++
    5篇
  • LeetCode-Python
    134篇
  • 硬件
    9篇
  • 其他
    37篇
兴趣领域 设置
  • 人工智能
    opencv计算机视觉深度学习神经网络tensorflow图像处理
About me
Github : JNingWei
Mail : hok2016jn@gmail.com
工作忙,私信未能及时回复还请见谅
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

手机指令集:armv7 & armv8

经验总结:手机指令集主要跟芯片相关,如果是c端,就默认是arm芯片了,也只有arm芯片才有armv7和armv8之分。如果上MNN的话,MNN的量化都是做在armv8上的现在c端大部分都是64位APP,对应的架构是armv8。寄存器个数不一样,指令集也不一样。需要针对这些不同重新设计计算的方式。armv7:一般偏低端机才有armv7,而armv7 是可以优化的。模型一般在armv7上跑得较慢,而MNN现在对armv7不能加速。但是据说抖音的都跑在armv7上,且还能加速。armv8:
原创
发布博客 2021.11.03 ·
267 阅读 ·
0 点赞 ·
0 评论

推理引擎:tnn & ncnn & 自研

经验总结目前开源的框架int推理做的都比较一般,有比较大的优化空间。在我们测试的case下,tnn相对来说会比ncnn好一些。不少大点的公司主要还是基于开源版本,适配自己的模型,针对性优化。其实搞优化大部分时间就是提高缓存命中率,高效利用neon寄存器。...
原创
发布博客 2021.11.03 ·
158 阅读 ·
0 点赞 ·
0 评论

【美妆】上美妆的全流程与问题定位

上美妆的流程点位 -> 绑妆(素材+配置文件) -> 渲染上妆流程:模型预测给到点位;配置文件对素材进行绑妆(不同素材对应不同的绑妆配置文件);送入同一套渲染引擎(每家都有自己的一套统一代码)进行渲染。绑妆环节的常见错误某个三角面片的点位顺序和整体相反按照统一顺序的面片叫做“正面”,反顺序的就成了“背面”。渲染环节有“背面剔除”原则,只渲染正面,背面不做渲染。因此“背面”区域会呈现皮肤的原色。跳点连接会导致有些面片重叠(互相重叠的,最终渲染效果依照最后渲染的那
原创
发布博客 2021.10.31 ·
124 阅读 ·
0 点赞 ·
0 评论

【pytorch】ncnn

onnx转ncnn完整实现:def onnx2ncnn(self): assert os.path.isfile(simplified_onnx_path) os.system('onnx2ncnn {} {} {}'.format(simplified_onnx_path, param_path, bin_path)) print('
param has been save to {}'.format(param_path)) print(' bin has
原创
发布博客 2021.09.22 ·
77 阅读 ·
0 点赞 ·
0 评论

【pytorch】tensorboardX

关于自定义runs下为什么不能正常保存tb记录(一直为空)的原因,可以尝试把 SummaryWriter 的如下参数实时打印出来:self.logdir = logdirself.purge_step = purge_stepself._max_queue = max_queueself._flush_secs = flush_secsself._filename_suffix = filename_suffixself._write_to_disk = write_to_diskself.k
原创
发布博客 2021.09.22 ·
43 阅读 ·
0 点赞 ·
0 评论

【pytorch】tnn

首先确保已经安装了tnn环境:onnx2tnn转tnn:def onnx2tnn(self): assert os.path.isfile(simplified_onnx_path) os.system('cd {}
' 'python onnx2tnn.py {} -version=v1.0 -optimize=1 -half=1 -o {} -input_shape input:1,{},{},{}' .format(C.o
原创
发布博客 2021.09.22 ·
867 阅读 ·
0 点赞 ·
0 评论

【pytorch】dropout

在pytorch中,nn.Dropout(xx) 中的参数表示要丢弃的比例,和tensorflow的定义是反过来的。
原创
发布博客 2021.09.22 ·
56 阅读 ·
0 点赞 ·
0 评论

【pytorch】onnx

pytorch任意形式的model(.t7、.pth等等)转.onnx全都可以采用固定格式:model_dir = './'pth_path = model_dir + 'A.pth'onnx_path = model_dir + 'A.onnx'batch_size = 1input_shape = (3, 112, 112)cfg = Config()cfg.load_from_file(args.model_cfg_file)model = PFLD_SE3_eval(cfg.mo
原创
发布博客 2021.09.22 ·
59 阅读 ·
0 点赞 ·
0 评论

【pytorch】bn

bn接口定义:torch.nn.BatchNorm2d:def init(self,num_features,eps=1e-5,momentum=0.1,affine=True,track_running_stats=True)args:momentum:默认为 0.1 。要freeze的时候就设置为0.0(和 tf 里面是反着来的,tf是设置为1.0才能freeze)。rack_running_stats:计算running_mean和running_var(即mo
原创
发布博客 2021.09.22 ·
60 阅读 ·
0 点赞 ·
0 评论

【pytorch】model

打印网络结构(不带节点名称):for ele in model.modules(): print(ele)打印named_parameters():for (name, param) in model.named_parameters(): if not param.requires_grad: print(name, param.data)几个主要api的区别:pytorch model.named_parameters() ,model.parameters(
原创
发布博客 2021.09.22 ·
57 阅读 ·
0 点赞 ·
0 评论

【pytorch】freeze

freeze bn:把所有相关的bn设置为 momentum=1.0 。freeze 正常参数:先比较两个state_dict,来freeze交集:def freeze_model(model, defined_dict, keep_step=None): for (name, param) in model.named_parameters(): if name in defined_dict: param.requires_grad = Fals
原创
发布博客 2021.09.22 ·
90 阅读 ·
0 点赞 ·
0 评论

【pytorch】tensor

import torcha = torch.tensor([1, 2, 3])print(a) # tensor([1, 2, 3])print(a.item()) # 会报错,因为 item() 只适配输出单个变量,无法适配list或者np.ndarrayprint(a.numpy()) # [1, 2, 3]
原创
发布博客 2021.09.22 ·
31 阅读 ·
0 点赞 ·
0 评论

【pytorch】lr

scheduler唯一作用就是 改optimizer的lr 。所以scheduler可以弃用,自己写个函数来实时 optimizer.param_groups[0][‘lr’] = lr 即可。因此,虽然print lr有 optimizer.param_groups[0][‘lr’] 和 scheduler.get_lr()[0] 这两种形式,但是前者才是正道,后者只是借用scheduler调控optimizer的lr时,才附加送的便捷方式。...
原创
发布博客 2021.09.22 ·
45 阅读 ·
0 点赞 ·
0 评论

【linux】服务器账户操作

新建账户目录sudo useradd -d /data0/jning -m jning切换到自己账户sudo su jning设置不再需要密码切换到root用户sudo -i 在ansible账号下编辑/etc/sudoerssudo vim /etc/sudoers 加入这句:jning ALL=(ALL) NOPASSWD:ALL 保存并退出。如果因为 readonly 无法操作成功,就用 :wq! 来强制保存退出。...
原创
发布博客 2021.09.17 ·
50 阅读 ·
0 点赞 ·
0 评论

【linux】机器间互传数据

机器间互传数据(记住在始发机操作):tar -c <本地(始发机)文件地址> | ssh <用户名>@<目的机器> 'tar -xvf - -C <目的文件夹地址>'
原创
发布博客 2021.09.17 ·
38 阅读 ·
0 点赞 ·
0 评论

【windows】压缩 / 解压

安装推荐使用7z,这个需要先额外安装好。压缩对若干文件打包压缩:7z a A.zip a.txt b.txt c.txt 压缩文件夹:7z a A.zip f:/A/**压缩为 .tar.gzwindows下如何生成tar或gz压缩包通过界面操作:1.右键选择“tar”,生成 .tar 。2.将 .tar 右键选择“gzip”生成 .tar.gz 。(如果要切分成多个连续文件,则在分卷里面选择对应大小即可)3.解压时,记得先合并所有拆分的压缩小包,然后才能解压之: ca
原创
发布博客 2021.09.17 ·
107 阅读 ·
0 点赞 ·
0 评论

【linux】大文件:拆分 / 合并

拆分例如拆分为若干个2G:cat A.zip | split -b 2G - A.zip合并cat A.zip.a* > A.zip
原创
发布博客 2021.09.17 ·
63 阅读 ·
0 点赞 ·
0 评论

【windows】Xshell使用

配置1.新建会话属性:2.双击要选择的会话:3.填写登录的用户名:xxx4.输入密码:xxx传输文件local 向 server 上传文件:rz local 从 server 下载文件(文件夹下载不了,必须打包):sz ...
原创
发布博客 2021.09.17 ·
51 阅读 ·
0 点赞 ·
0 评论

Tmux配置

配置tmux.configvim ~/.tmux.conf 贴入:set -g @plugin 'tmux-plugins/tpm'set -g @plugin 'tmux-plugins/tmux-sensible'set -g @plugin 'tmux-plugins/tmux-resurrect'set -g @continuum-restore 'on'run '~/.tmux/plugins/tpm/tpm'set -g default-shell /bin/zshset
原创
发布博客 2021.09.17 ·
62 阅读 ·
0 点赞 ·
0 评论

【linux】配置cuda

去 /usr/local/ 下查看cuda安装现状配置cuda路径:vim ~/.bashrc写入:export PATH=/usr/local/cuda-9.0/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH使生效:source ~/.bashrc
原创
发布博客 2021.09.17 ·
84 阅读 ·
0 点赞 ·
0 评论
加载更多