我有个BP神经网络的C++实例,但是只能输出0或1,这是因为什么呢?激活函数用的是Sigmoidal
发布网友
发布时间:2022-04-29 01:14
我来回答
共2个回答
热心网友
时间:2023-09-30 13:52
#include <stdio.h>
#include <stdlib.h>
static int i = 0;
void Timer(double t)
{
t -= 0.0000002*int(t/2.4);//为了精度修正,这个数值不一定准确,但是为了下面计算准确,必须修正
int tmp;
switch(int(t))//整数部分
{
case 0:
case 1:
i = 600; break;//整数部分0或者1
case 2://上面的部分是 t<2 的部分
{
tmp = ( t - int(t) ) * 10;//小数第一位,用这一位足够确定数值范围
switch(tmp)
{
case 0:
case 1:
case 2:
case 3://这部分是2~2.4
i += 850;
if(i >= 4000)i = 4000;
break;
case 4://从这里开始是2.4~4.4
case 5:
case 6:
case 7:
case 8:
case 9:
热心网友
时间:2023-09-30 13:53
你设置了阈值判断吧,可以输出多个二进制数如0001则属于1,0010=2,0100=3,1000=4,用这种方法转换