msnhnetviewer.png
Ps: 目前本框架在持续开发中,后续将支持GPU版本.也欢迎有志之士一块维护本框架. 欢迎Star.
git地址 https://github.com/msnh2012/Msnhnet
目前测试过的操作系统 (你可以自己测试下mac os)
windows | linux | mac os | |
---|---|---|---|
checked | √ | √ | x |
gpu | x | x | x |
目前测试过的CPU (其它U出现BUG可以在issue提出)
Intel i7 | 树莓派4B | Jeton NX(cpu) | |
---|---|---|---|
checked | √ | √ | √ |
特点
自己开发的可视本框架的模型
Yolo测试
其他已测试的网络(欢迎测试新的模型)
依赖
如何编译
cmake_option.png
sudo apt-get install qt5-default #optional
sudo apt-get install libqt5svg5-dev #optional
sudo apt-get install libopencv-dev
# build yaml-cpp
git clone https://github.com/jbeder/yaml-cpp.git
cd yaml-cpp
mdir build
cd build
cmake ..
make -j4
sudo make install
#config
sudo echo /usr/local/lib > /etc/ld.so.conf/usrlib.conf
sudo ldconfig
# build Msnhnet
git clone https://github.com/msnh2012/Msnhnet.git
cd Msnhnet/build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4
sudo make install
vim ~/.bashrc # Last line add: export PATH=/usr/local/bin:$PATH
测试
dog.png
使用MsnhnetViewer查看网络结构
viewer.jpg
各个封装的结构
ResBlock
Res2Block
Res2Block
AddBlock
Add Block
ConcatBlock
Concat Block
如何转换模型
import torchvision.models as models
import torch
from torchsummary import summary
md = models.resnet18(pretrained = True)
md.to("cpu")
md.eval()
print(md, file = open("net.txt", "a"))
summary(md, (3, 224, 224),device='cpu')
val = []
dd = 0
for name in md.state_dict():
if "num_batches_tracked" not in name:
c = md.state_dict()[name].data.flatten().numpy().tolist()
dd = dd + len(c)
print(name, ":", len(c))
val.extend(c)
with open("alexnet.msnhbin","wb") as f:
for i in val :
f.write(pack('f',i))
关于训练使用pytorch版本的各个模型训练即可,训练完成后,按照上一步,构建Msnhnet即可. 如yolov3/4. 使用U版: https://github.com/ultralytics/yolov3
推荐语
该框架的作者是中科院知名大佬msnh2012
业余时间独立开发的。从框架的立意来看,作者是对各个平台以及各个框架的计算过程有深刻认识的,另外作者也会持续更新支持更多的主流网络例如YOLOV5。并且也在底层加速发力,目前已经支持部分操作的AVX指令集以及Neon指令集优化。