ocean::SynapseGroup
ocean::SynapseGroup
突触组是突触的基础容器,容纳一群特性相近的突触 More...
#include <Model.hpp>
Inherits from ocean::ConnectionModel, ocean::Model, ocean::Node, std::enable_shared_from_this< Node >
Public Functions
Name | |
---|---|
SynapseGroup(const PSynapseModel & synapseModel) 构建突触组 | |
~SynapseGroup() override 析构突触组,自动调用 | |
bool | connect(uint16_t src, uint16_t dst) 一对一连接 |
bool | connect(float probability =1.f) 指定概率进行连接 |
bool | connect(const Tensor & sources, uint16_t dst, float probability =1.f) 指定批神经元到指定神经元连接 |
bool | connect(uint16_t src, const Tensor & targets, float probability =1.f) 指定一个神经元到一批神经元连接 |
bool | connect(const Tensor & sources, const Tensor & targets, float probability =1.f) 指定一批神经元到一批神经元的连接 |
bool | connectMatrix(const Tensor & matrix) 指定连接位点索引矩阵进行连接 |
bool | connectInhibit() 侧抑制连接 |
PSynapseModel | getSynapseModel() 获取内部模块指针 |
Additional inherited members
Public Functions inherited from ocean::ConnectionModel
Name | |
---|---|
ConnectionModel(const PIConnectionModel & connectionModel) 构建连接模型 | |
bool | clear() 清理所有连接关系,对应逻辑关系全部移除 |
void | traversal(const std::function< bool(uint32_t)> & dealSynapse) 遍历所有连接点,相当于在连接图中连接矩阵的索引位置 |
uint32_t | getNumber() 获取连接数 |
uint16_t | getInputNumber() 获取输入数 |
uint16_t | getOutputNumber() 获取输出数 |
PIConnectionModel | getConnectionModel() 获取内部模块指针 |
Public Functions inherited from ocean::Model
Name | |
---|---|
Model(const PIModel & base) 构造模型, 该方法由模块内部调用 | |
~Model() override 模型析构 | |
float | getStep() 获取计算步长,步长是两次计算间的周期 |
std::string | getOperation() 获取操作名称 |
PVariable | getParam(const std::string & paramName) 根据参数名称获取变量 |
PTensorVariable | getStatus(const std::string & variableName) 据参数名称张量变量 |
bool | setStatus(const std::string & variableName, const Filler & filler) 根据参数名称设置张量变量 |
bool | setStatus(const std::string & variableName, const Tensor & status) 根据参数名称设置张量变量 |
PInput | in(const std::string & name) 根据端口名称获取输入端口 |
POutput | out(const std::string & name) 根据端口名称获取输出端口 |
PReference | ref(const std::string & name) 根据端口名称获取引用端口 |
PConnection | mat(const std::string & name) 根据端口名称获取连接端口 |
void | addMonitor(const std::string & paramName, float windows =0) 添加变量监控 |
void | addMonitors(std::vector< std::string > monitors, float windows =0) 批量添加变量监控 |
void | removeMonitor(const std::string & paramName) 移除变量监控 |
void | removeMonitors(std::vector< std::string > monitors) 批量删除变量监控 |
CaptureBuffer | getCapture(const std::string & paramName) 获取变量监控结果 |
std::vector< CaptureBuffer > | getCaptures(std::vector< std::string > captures) 批量获取变量监控 |
PIModel | getModel() 获取内部模型指针, 仅被内部模块使用 |
Public Functions inherited from ocean::Node
Name | |
---|---|
Node(PModelBase model) 构造节点 | |
virtual | ~Node() 节点析构函数 |
const std::string & | getName() const 获取节点名称 |
const std::string & | getDescription() const 获取节点描述 |
void | setDescription(const std::string & description) 设置节点描述 |
PModelBase | getModelBase() 获取内部基类指针 |
Protected Attributes inherited from ocean::Node
Name | |
---|---|
PModelBase | model 内部模块指针 |
Detailed Description
class ocean::SynapseGroup;
突触组是突触的基础容器,容纳一群特性相近的突触
突触组继承至连接模块, 描述的是突触的输入及输出存在不规则连接,提供了一系列的接口用于指定突触连接关系;
- 一对一连接;
- 指定概率的全连接;
- 指定一批神经元到一个神经元;
- 指定一个神经元到一批神经元;
- 指定一批神经元到一批神经元;
- 指定连接索引矩阵
- 侧向抑制连接,一般输入和输出同源,且输入输出数目相等,除自身位置外,其它连接关系均存在
Public Functions Documentation
function SynapseGroup
explicit SynapseGroup(
const PSynapseModel & synapseModel
)
构建突触组
Parameters:
- synapseModel 内部模块指针
Note: 仅被内部模块调用
function ~SynapseGroup
~SynapseGroup() override
析构突触组,自动调用
function connect
bool connect(
uint16_t src,
uint16_t dst
)
一对一连接
Parameters:
- src 输入神经元索引
- dst 输出神经元索引
Return: 建立效果
- true, 成功
- false, 失败
function connect
bool connect(
float probability =1.f
)
指定概率进行连接
Parameters:
- probability 连接概率, 0 < probability < = 1.0
Return: 建立效果
- true, 成功
- false, 失败
function connect
bool connect(
const Tensor & sources,
uint16_t dst,
float probability =1.f
)
指定批神经元到指定神经元连接
Parameters:
- sources 输入的一群神经元索引, uint16 的张量
- dst 输出神经元
- probability 连接概率,0 < probability < = 1.0
Return: 建立效果
- true, 成功
- false, 失败
function connect
bool connect(
uint16_t src,
const Tensor & targets,
float probability =1.f
)
指定一个神经元到一批神经元连接
Parameters:
- src 输入神经元索引
- targets 输出的一群神经元索引, uint16的张量
- probability 连接概率, 0 < probability < = 1.0
Return: 建立效果
- true, 成功
- false, 失败
function connect
bool connect(
const Tensor & sources,
const Tensor & targets,
float probability =1.f
)
指定一批神经元到一批神经元的连接
Parameters:
- sources 输入的一群神经元索引, uint16 的张量
- targets 输出的一群神经元索引, uint16的张量
- probability 0 < probability < = 1.0
Return: 建立效果
- true, 成功
- false, 失败
function connectMatrix
bool connectMatrix(
const Tensor & matrix
)
指定连接位点索引矩阵进行连接
Parameters:
- matrix 连接矩阵 uint32 张量
Return: 建立效果
- true, 成功
- false, 失败
function connectInhibit
bool connectInhibit()
侧抑制连接
Return: 建立效果
- true, 成功
- false, 失败
function getSynapseModel
PSynapseModel getSynapseModel()
获取内部模块指针
Return: 内部模块指针
Note: 该方法仅被内部使用
Updated on 2022-08-19 at 17:14:26 +0800