【caffe 深度学习】5.特征图可视化以及loss和accuracy曲线可视化

本文介绍了如何使用Python对Caffe深度学习模型的特征图进行可视化,以及如何通过修改lenet.prototxt文件实现单张图片的输入。同时,详细讲解了训练loss和accuracy曲线的可视化过程,包括利用plot_training_log.py脚本生成图像,并解决了在Windows环境下可能出现的绘图问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.特征图可视化:

        对网络中各层特征图的可视化可用python来实现,具体实现如下:

# coding: utf-8
import numpy as np
import matplotlib.pyplot as plt
from PIL import  Image
import os
import sys
import caffe

#网络结构描述文件
deploy_file="E:/graduate_student/deep_learning/caffe/new_Win_caffe/document/1/caffe-windows/caffe-windows/examples/mnist/lenet.prototxt"

#模型文件
model_file="E:/graduate_student/deep_learning/caffe/new_Win_caffe/document/1/caffe-windows/caffe-windows/examples/mnist/modle/_iter_10000.caffemodel"

#测试图片   
test_data="E:/graduate_student/deep_learning/caffe/new_Win_caffe/document/1/caffe-windows/caffe-windows/examples/mnist/MNIST_data/0-9/8.bmp"

#特征图路径
feature_map_path="E:/graduate_student/deep_learning/caffe/new_Win_caffe/document/1/caffe-windows/caffe-windows/examples/mnist/draw_data/"

#编写一个函数,用于显示各层的参数,padsize用于设置图片间隔空隙,padval用于调整亮度
def show_data(data,name,padsize=1,padval=0):
    #归一化(0到1)
    data-=data.min()
    data/=data.max()
    #根据data中图片数量data.shape[0](卷积核数量),计算最后输出时每行每列图片数n
    n=int(np.ceil(np.sqrt(data.shape[0])))
    
    #对于conv1,data.shape→(20,24,24)
    #(前面填补0个,后面填补n**2-data.shape[0]),(前面填补0个,后面填补padsize个),(前面填补0个,后面填补padsize个)
    padding=((0,n**2-data.shape[0]),(0,padsize),(0,padsize))
    data = np.pad(data, padding, mode='constant', constant_values=padval) #常数值填充,填充0
    
    #对于conv1,panding后data.shape→(25,25,25)
    #对于conv1,将(25,25,25)reshape→(5,5,25,25)再transpose((0,2,1,3))
    data=data.reshape((n,n)+data.shape[1:]).transpose((0,2,1,3))
    #
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值