📄 nervecell.cpp
字号:
#include "NerveCell.h"
#include <math.h>
int NerveCell::count = 0;
double Sigmoid(double x)
{
return double(1/(1+exp(-x)));
}
void NerveCell::Initial(Layer* layer)
{
n=0;
input.clear();
weight.clear();
lastweight.clear();
if (hidden)
{
return;
}
else
{
for (int i=0;i<layer->num;i++)
{
Connect((*layer)[i]);
}
}
}
Vtype NerveCell::CalcValue()
{
if (hidden)
{
value = 1;
}
else
{
if (0 == n)
{
}
else
{
value = 0;
for(int i=0;i<input.size();i++)
{
value += weight[i]*input[i]->GetValue();
}
value = Sigmoid(value);
}
}
update = true;
return value;
}
NerveCell* Layer::operator[](int i)
{
return celllist[i]->head;
}
void Layer::DelCell(NerveCell* cell)//delete the cell
{
vector<NerveCellList*>::iterator iter=celllist.begin();
for (int i=0;i<celllist.size();i++)
{
if(celllist[i]->head == cell)
{
celllist.erase(iter);
break;
}
iter++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -