Display

news2025/1/9 16:30:24

Pipeline

Dataloader和后面网络训练是解耦的,Dataloader负责把数据读出来变成tensor,网络(继承nn.Module父类)负责把这tensor算成最后的输出。在网络传播的过程中,hook记录保留中间数据,用于display作图。

数据预处理

明确这个问题:画图,是对一张图片经过各层layer的时候画他的spike生成图像,而你生成图像需要的数据是通过hook前向传播保留下来的你需要的只是一个样本走一次的数据,所以batch_size要设置成1,意味着在训练或推断过程中一次处理的样本数量为1,得到iteration=10000。然后继续设置一个sample的数量,当大于等于该sample的时候break处理即可,在这里sample_max即为1。
在这里插入图片描述

for i,data in enumerate(tqdm(testloader)):
            if i >= args.sample_max:
                break

SNN想法上的一些问题:

1、存储的形式是如同spkingjelly所说的 [T, a, b, c] 第一维是时间维度,对应着你输入的 t。所以传统的ann中走1个epoch对应着走1遍网络。在snn中1个epoch是走网络t遍。
对应着代码就要分情况讨论:

    if not module in spikes:
        spikes[module] = output.detach().cpu()
    else:
        spikes[module] = torch.cat((spikes[module], output.detach().cpu()),dim=0)

2、用切片方法取样本

neuron_number = []
layer = np.array(spikes[key].detach().cpu())
neuron_number.append("{}$\\times${}$\\times\${}".format(layer.shape[1],layer.shape[2],layer.shape[3]))

matplotlib with LaTeX

在 matplotlib 中,你可以使用 LaTeX 语法来渲染图表中的文本标签、数学符号和公式。
e.g.$\times$

neuron_number.append("{}$\\times$1$\\times$1".format(layer.shape[1]))

numpy——reshape/shape/size

detach() 方法可以帮助我们在需要处理不需要梯度信息的张量时,避免在计算图中保留不必要的计算历史。当调用 detach() 方法时,会生成一个新的张量,它与原始张量有相同的数值数据,但是不再保留梯度信息。这意味着新的张量不会被纳入到计算图中进行自动微分的计算,从而不会影响反向传播过程。

layer = np.array(value.detach().cpu())
print("layer.shape",layer.shape) 
'''
激活层 : layer.shape (10, 64, 32, 32) 最外层是t
classifer: layer.shape (10, 4096) 
'''
numpy.reshape 函数可以在不改变数据的条件下修改形状
layer = layer.reshape(layer.shape[0], -1) # 保留第一个维度不变,其余整合到第二个维度
'''
# print(layer.shape) (10, 512, 4, 4) ----> (10, 8192)
# print(layer.size)  (10, 8192) ----> 81920
'''

layer.shape (10, 512, 4, 4)
(10, 8192)
layer.shape (10, 4096)
(10, 4096)

PS:
Matplotlib figure ‘.supxlabel’ does not work:当同一个代码在别人电脑能跑但是自己点脑跑不了时,一定是环境的问题。

  • Python at least version 3.7;
  • Matplotlib at least version 3.4 (pip install --upgrade matplotlib).

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/771797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS——基础知识及使用

CSS 是什么 CSS是层叠样式表 (Cascading Style Sheets)的简写.CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离。 基本语法规范 选择器 { 一条/N条声明 } 选择器决定针对谁修改 (找谁)声明决定修改啥. (干啥)声明的…

PP速度模式应用

应用场景要求: 电机在变化的负载下,保持设定的速度时,需要使用速度模式。 在速度模式下,电机速度由发送到电机的电压控制。但是要改变电机的速度(加速或减速)需要增加或减小电机转矩,因此在速度…

Stable Diffusion - 编辑生成 (OpenPose Editor) 相同人物姿势的图像

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131818943 OpenPose Editor 是 Stable Diffusion 的扩展插件,可以自定义人物的姿势和表情,以及生成深度、法线和边缘图等信…

rt-thread rtc设备驱动开发

基于pico rtc设备驱动开发 I/O设备框架RTC设备功能配置——启用Soft RTC功能配置——启用NTP时间自动同步功能配置——启用硬件RTC RT-Thread 的 RTC (实时时钟)设备为操作系统的时间系统提供了基础服务。应用层对于 RTC 设备一般不存在直接调用的 API &…

three.js学习

前言&#xff1a; three.js基本使用没问下&#xff0c;下面进入自定义图形 效果展示 实现 使用BufferGeometry()自定义 <script setup lang"ts"> import { ref, onMounted } from vue import * as THREE from three // 导入轨道控制器 import { OrbitContro…

Java对象深拷贝、浅拷贝之枚举类型

问题&#xff1a;为什么属于引用类型的enum不会有深拷贝浅拷贝的问题&#xff1f; 解释&#xff1a; 在Java中&#xff0c;枚举类型是一种特殊的类类型。每个枚举值都是该枚举类型的一个实例&#xff0c;并且这些实例在枚举类型被初始化时就已经被创建。这些实例在程序的整个…

2023年7月18日,File类,IO流,线程

File类 1. 概述 File&#xff0c;是文件和目录路径的抽象表示 File只关注文件本身的信息&#xff0c;而不能操作文件里的内容 。如果需要读取或写入文件内容&#xff0c;必须使用IO流来完成。 在Java中&#xff0c;java.io.File 类用于表示文件或目录的抽象路径名。它提供了一…

elementUI el-radio 无法点击的问题

<el-form-item label"B端客户类型" prop"user_type"><template slot"label"><span>B端客户类型</span><el-tooltip effect"dark" placement"top" content"B端大客户账期有效,只有设置该类型…

数据结构双向链表,实现增删改查

一、双向链表的描述 在单链表中&#xff0c;查找直接后继结点的执行时间为O(1)&#xff0c;而查找直接前驱的执行时间为O(n)。为克服单链表这种单向性的缺点&#xff0c;可以用双向链表。 在双向链表的结点中有两个指针域&#xff0c;一个指向直接后继&#xff0c;另一个指向直…

AJAX: 事件循环(举例细论)

概念&#xff1a;执行任务和收集异步任务&#xff0c;在调用栈空闲时&#xff0c;反复调用任务队列里回调函数的一种执行机制 原因&#xff1a;JavaScript 是单线程的&#xff0c;为了不阻塞 JS 引擎&#xff0c;设计执行代码的模型 JS内代码如何执行&#xff1a; 执行同步代…

暴雪娱乐遭DDoS攻击,《暗黑破坏神》等多款游戏受影响

6月25日上午11点&#xff0c;有游戏玩家反应Blizzard Battle.net无法登入、连线缓慢及网站问题&#xff0c;暴雪也证实其电玩平台遭到DDoS攻击。 暴雪娱乐的 Battle.net在线服务遭到分布式拒绝服务&#xff08;DDoS&#xff09;攻击&#xff0c;导致玩家无法正常登录游戏或游戏…

Spring Cloud Alibaba【Nacos配置动态刷新、Nacos集群架构介绍 、Nacos的数据持久化、认识分布式流量防护 】(五)

目录 分布式配置中心_Nacos配置动态刷新 分布式配置中心_Dubbo服务对接分布式配置中心 分布式配置中心_Nacos集群架构介绍 分布式配置中心_Nacos的数据持久化 分布式配置中心_Nacos集群配置 分布式流量防护_认识分布式流量防护 分布式流量防护_认识Sentinel 分布式配置…

WIN无法访问linux开启的SAMBA服务器

WIN无法访问linux开启的SAMBA服务器 打开搜索框“管理Windows凭据” 点击编辑

Goby 漏洞发布|天擎终端安全管理系统 YII_CSRF_TOKEN 远程代码执行漏洞

漏洞名称&#xff1a;天擎终端安全管理系统 YII_CSRF_TOKEN 远程代码执行漏洞 English Name&#xff1a;Tianqing terminal security management system YII_CSRF_TOKEN remote code execution vulnerability CVSS core: 9.8 影响资产数&#xff1a;875 漏洞描述&#xff1…

标注工具Labelimg,正常运行显示,但是对图片点击Create RectBox画矩形框开始闪退

问题描述*&#xff1a;标注工具Labelimg&#xff0c;正常运行显示&#xff0c;但是对图片点击Create RectBox画矩形框开始闪退&#xff0c;闪退出现以下代码 File “C:\ProgramData\anaconda3\Lib\site-packages\libs\canvas.py”, line 530, in paintEvent p.drawLine(self.p…

接口测试 Fiddler 保存会话 (请求)

目录 前言&#xff1a; 为什么要保存请求&#xff1f; 保存单个请求 打开保存的请求文件 乱码的解决方法 保存所有请求 自动保存请求的猜想 自动保存已实现 前言&#xff1a; 在进行接口测试时&#xff0c;Fiddler是一个非常有用的工具&#xff0c;它可以帮助您捕获和…

【蓝图】p27开关门互动实现

p27开关门互动实现 创建一个门 添加初学者内容包 拖拽一个门到场景中 添加一个碰撞 创建盒体触发器 左侧模式->基础->盒体触发器&#xff0c;拖拽到门上&#xff0c;调整大小 开关门互动实现 做一个开门互动 要把开门逻辑写在关卡蓝图里 门设置为可移动 打开关卡蓝…

【JAVA】方法的使用:方法语法、方法调用、方法重载、递归练习

&#x1f349;内容专栏&#xff1a;【JAVA】 &#x1f349;本文脉络&#xff1a;JAVA方法的使用&#xff0c;递归练习 &#x1f349;本文作者&#xff1a;Melon_西西 &#x1f349;发布时间 &#xff1a;2023.7.19 目录 1. 什么是方法(method) 2 方法定义 2.1 方法定义语法格…

【OC总结- Block】

文章目录 前言2. Block2.1 Block的使用规范2.2 __block修饰符2.3 Block的类型2.4 Block的循环引用及解决循环引用的场景引入解决循环引用Block循环引用场景 2.5 Block的实现及其本质2.5.1 初始化部分2.5.2 调用部分2.5.3 捕获变量 Block本质2.6 Block捕获变量 和 对象2.7 Block…

【算法基础:数据结构】2.2 字典树/前缀树 Trie

文章目录 知识点cpp结构体模板 模板例题835. Trie字符串统计❤️❤️❤️❤️❤️&#xff08;重要&#xff01;模板&#xff01;&#xff09;143. 最大异或对&#x1f62d;&#x1f62d;&#x1f62d;&#x1f62d;&#x1f62d;&#xff08;Trie树的应用&#xff09; 相关题目…