Win 7下MatConvNet使用DAG网络方法记录
来源:互联网 发布:人工智能 图书馆 编辑:程序博客网 时间:2024/06/07 05:46
1、修改ResNet网络
function net = resnet_single() net = load('imagenet-resnet-50-dag.mat') ; net = dagnn.DagNN.loadobj(net) ;net.removeLayer('fc1000') ; net.removeLayer('prob') ;dropoutBlock = dagnn.DropOut('rate',0.9); net.addLayer('dropout',dropoutBlock,{'pool5'},{'pool5d'},{});fc8Block = dagnn.Conv('size',[1 1 2048 8],'hasBias',true,'stride',[1,1],'pad',[0,0,0,0]); net.addLayer('fc8',fc8Block,{'pool5d'},{'prediction'},{'fc8f','fc8b'});lossBlock = dagnn.Loss('loss', 'softmaxlog'); net.addLayer('softmaxloss',lossBlock,{'prediction','label'},'objective');net.addLayer('top1err', dagnn.Loss('loss', 'classerror'), ... {'prediction','label'}, 'top1err') ;
2、构建Siamese网络
net1 = resnet_single();net1 = net1.saveobj() ;net2 = net1;for i = 1 : length(net2.layers); net2.layers(i).name = strcat(net2.layers(i).name,'_2'); for j = 1 : length(net2.layers(i).inputs); net2.layers(i).inputs{j} = strcat(net2.layers(i).inputs{j},'_2'); end; for j = 1 : length(net2.layers(i).outputs); net2.layers(i).outputs{j} = strcat(net2.layers(i).outputs{j},'_2'); end;end;for i = 1 : length(net2.vars); net2.vars(i).name = strcat(net2.vars(i).name,'_2'); end;net1.vars = [net1.vars,net2.vars];net1.layers = [net1.layers,net2.layers];net = dagnn.DagNN.loadobj(net1) ;% Siamese Network Lossnet.addLayer('SiameseLoss',dagnn.SiameseLoss(), {'pool5','pool5_2'}, {'objective_s'});
3、构建TripletLoss网络
net1 = resnet_single();net1 = net1.saveobj() ;net2 = net1;for i = 1 : length(net2.layers); net2.layers(i).name = strcat(net2.layers(i).name,'_2'); for j = 1 : length(net2.layers(i).inputs); net2.layers(i).inputs{j} = strcat(net2.layers(i).inputs{j},'_2'); end; for j = 1 : length(net2.layers(i).outputs); net2.layers(i).outputs{j} = strcat(net2.layers(i).outputs{j},'_2'); end;end;for i = 1 : length(net2.vars); net2.vars(i).name = strcat(net2.vars(i).name,'_2'); end;net3 = net1;for i = 1 : length(net3.layers); net3.layers(i).name = strcat(net3.layers(i).name,'_3'); for j = 1 : length(net3.layers(i).inputs); net3.layers(i).inputs{j} = strcat(net3.layers(i).inputs{j},'_3'); end; for j = 1 : length(net3.layers(i).outputs); net3.layers(i).outputs{j} = strcat(net3.layers(i).outputs{j},'_3'); end;end;for i = 1 : length(net3.vars); net3.vars(i).name = strcat(net3.vars(i).name,'_3'); end;net1.vars = [net1.vars,net2.vars,net3.vars];net1.layers = [net1.layers,net2.layers,net3.layers];net = dagnn.DagNN.loadobj(net1) ;% Triplet Network Lossnet.addLayer('TripletLoss',dagnn.TripletLoss('margin',0.1),{'pool5','pool5_2','pool5_3'},{'objective_triplet'});
0 0
- Win 7下MatConvNet使用DAG网络方法记录
- MatConvNet 网络模型结构可视化的方法
- Win 7下使用DNW方法(个人总结)
- MariaDB WIN下安装记录
- MatConvNet 使用VGG网络模型对图像做分类处理
- windows下编译Matconvnet的方法(CPU和GPU)
- windows下编译Matconvnet的方法(CPU和GPU)
- windows下编译Matconvnet的方法(CPU和GPU)
- windows下编译Matconvnet的方法(CPU和GPU)
- win sc 命令使用记录
- DbgView在Win 7下的使用
- win 7 下使用超级终端
- win下使用mongodb
- Win 下使用py2exe
- Linux下编译Matconvnet
- matconvnet 安装与使用
- python学习之win下安装记录
- Matconvnet 构建自己的网络
- OkHttpUtils的用法
- 往年总结,新年期望
- 直接拿来用!最火的Android开源项目(完结篇)
- 【mfc】多线程
- HTML 中localstorage 在IOS 下的safari中不起作用,怎么办?
- Win 7下MatConvNet使用DAG网络方法记录
- TF-IDF算法
- boost之unordered_map
- spring 4.3.5导入commons-logging的jar包后报NoClassDefFoundError
- 【ife】任务二十五:JavaScript和树(四)
- 分区表 主键全局索引和分区索引区别
- linux服务器ssh、公匙和密钥实战详解
- JavaScript组件设计思想(二)
- Populating Next Right Pointers in Each Node