脉冲神经网络2:SNN的仿真3-生成输入层序列

该博客介绍了如何将原始图片转换为感受野图像,并详细阐述了将这些图像的灰度值转化为脉冲序列的过程,为脉冲神经网络(SNN)的输入层处理提供实操步骤。

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

上一个博客说明了将原始图片转化感受野的图片

这一节说明如何将图片对应的灰度值转化为脉冲序列

import numpy as np
from numpy import interp

T = 150 # 时钟周期为150,在150个cycle中产生脉冲

# 定义将图片像素值转化为脉冲的函数encode
def encode(pot):
    # 假设所有的点对应的像素点对应一个二元数组train
    train = []

    for i in range(pot.shape[0]):
        for j in range(pot.shape[1]):
            # 初始化一个像素点对应的序列
            temp = np.zeros([(T+1),])
            # 一个像素点的灰度值经过感受野区间在[-1.069, 2.78]
            # 灰度值和人脑的神经元发放频率[1, 20]Hz成正比
            freq = interp(pot[i][j], [-1.069,2.781], [1,20])
            assert freq > 0
            
            # 计算每隔多少cycle发放一次
            freq1 = math.ceil(600/freq)
            k = freq1
            if(pot[i][j]>0):
                while k<(T+1):
                    temp[int(k)] = 1
                    k = k + freq1
            train.append(temp)
    return train

 把对应的输入层图片传递给encode函数

train = np.array(encode(pot))
print(train.shape)
print(train[1].shape)
print(train[1])

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值