Day 76:通用BP神经网络 (3. 综合测试)

news2024/12/23 13:48:12

1 代码:

package dl;

import java.util.Arrays;

/**
 * Full ANN with a number of layers.
 *
 * @author Fan Min minfanphd@163.com.
 */
public class FullAnn extends GeneralAnn {

    /**
     * The layers.
     */
    AnnLayer[] layers;

    /**
     ********************
     * The first constructor.
     *
     * @param paraFilename
     *            The arff filename.
     * @param paraLayerNumNodes
     *            The number of nodes for each layer (may be different).
     * @param paraLearningRate
     *            Learning rate.
     * @param paraMobp
     *            Momentum coefficient.
     * @param paraActivators The storing the activators of each layer.
     ********************
     */
    public FullAnn(String paraFilename, int[] paraLayerNumNodes, double paraLearningRate,
                   double paraMobp, String paraActivators) {
        super(paraFilename, paraLayerNumNodes, paraLearningRate, paraMobp);

        // Initialize layers.
        layers = new AnnLayer[numLayers - 1];
        for (int i = 0; i < layers.length; i++) {
            layers[i] = new AnnLayer(layerNumNodes[i], layerNumNodes[i + 1], paraActivators.charAt(i), paraLearningRate,
                    paraMobp);
        } // Of for i
    }// Of the first constructor

    /**
     ********************
     * Forward prediction. This is just a stub and should be overwritten in the subclass.
     *
     * @param paraInput
     *            The input data of one instance.
     * @return The data at the output end.
     ********************
     */
    public double[] forward(double[] paraInput) {
        double[] resultArray = paraInput;
        for(int i = 0; i < numLayers - 1; i ++) {
            resultArray = layers[i].forward(resultArray);
        }//Of for i

        return resultArray;
    }// Of forward

    /**
     ********************
     * Back propagation. This is just a stub and should be overwritten in the subclass.
     *
     * @param paraTarget
     *            For 3-class data, it is [0, 0, 1], [0, 1, 0] or [1, 0, 0].
     *
     ********************
     */
    public void backPropagation(double[] paraTarget) {
        double[] tempErrors = layers[numLayers - 2].getLastLayerErrors(paraTarget);
        for (int i = numLayers - 2; i >= 0; i--) {
            tempErrors = layers[i].backPropagation(tempErrors);
        }//Of for i

        return;
    }// Of backPropagation

    /**
     ********************
     * Show me.
     ********************
     */
    public String toString() {
        String resultString = "I am a full ANN with " + numLayers + " layers";
        return resultString;
    }// Of toString

    /**
     ********************
     * Test the algorithm.
     ********************
     */
    public static void main(String[] args) {
        int[] tempLayerNodes = { 4, 8, 8, 3 };
        FullAnn tempNetwork = new FullAnn("C:\\Users\\86183\\IdeaProjects\\deepLearning\\src\\main\\java\\resources\\iris.arff", tempLayerNodes, 0.01,
                0.6, "sss");

        for (int round = 0; round < 5000; round++) {
            tempNetwork.train();
        } // Of for n

        double tempAccuray = tempNetwork.test();
        System.out.println("The accuracy is: " + tempAccuray);
        System.out.println("FullAnn ends.");
    }// Of main
}// Of class FullAnn

2 结果:

2.1 激活函数为“s”(SIGMOID)时:

2.2  激活函数为“a”(ARC_TAN)时:

 2.3  激活函数为“e”(ELU)时:

 

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

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

相关文章

Python爬虫——selenium的安装和基本使用

1.什么是selenium&#xff1f; selenium是一个用于web应用程序测试的工具selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样支持通过各种driver&#xff08;FrifoxDriver&#xff0c;ItenrentExploreDriver&#xff0c;OperaDriver&#xff0c;ChromeDrive…

【linux开发基础知识】

基础--图形界面 基础--终端 基础-用户/组 基础-目录 基础-文件 Shell-基础 Shell-参数 Shell-if Shell-while/for Shell-until/case Shell-函数 Shell-正则表达式 Shell-常用命令 开发-svn 开发-编辑(vim) 开发-编译 开发-调试 开发-部署 建议 ● http://linux.vbir…

海外应用商店关键词优化之如何提高应用可见度

应用商店关键词优化是确保用户可以在Google Play和Apple应用商店中找到我们应用的重要一步。我们需要选择正确的关键词&#xff0c;将它们放在正确的位置&#xff0c;并合并一系列不同的关键词&#xff0c;同时确保拥有良好的转化率。 1、了解当前的元数据是关键字选择的第一步…

selenium环境搭建

文章目录 1、下载谷歌浏览器2、下载谷歌驱动 1、下载谷歌浏览器 浏览器下载完成后&#xff0c;在任务管理器中禁止浏览器的自动更新。因为驱动版本必须和浏览器一致&#xff0c;如果浏览器更新了&#xff0c;驱动就用不起了。 2、下载谷歌驱动 谷歌驱动需要和谷歌浏览器版本…

Eigen在QT中的配置

Eigen简介 Eigen支持包括固定大小、任意大小的所有矩阵操作&#xff0c;甚至是稀疏矩阵&#xff1b;支持所有标准的数值类型&#xff0c;并且可以扩展为自定义的数值类型&#xff1b;支持多种矩阵分解及其几何特征的求解&#xff1b;它不支持的模块生态系统提供了许多专门的功能…

浏览器自动访问打开网址的软件小工具模拟测试

用微软框架写了个浏览器自动访问和打开网址的工具&#xff0c;进行测试模拟&#xff1a; 1、获取链接方式&#xff0c;可通过API接口返回JSON链接格式&#xff0c;也可以集成到文档手动录入链接由软件进行循环运行。 2、配置一些参数&#xff1a;数量、次数、时间间隔等 看下演…

常用dbGet命令

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f;拾陆楼知识星球入口 Examples of dbGet Command 1. Find the top name of the design dbGet top.name 2. Get all the attributes of a selected object dbGet selected.?? If you press tab key…

华为OD机试真题 Java 实现【判断字符串子序列】【2023 B卷 100分】,倒序遍历

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

智汇云舟入选IDC《中国智慧城市数字孪生技术评估,2023》报告

8月7日&#xff0c;国际数据公司&#xff08;IDC&#xff09;发布了《中国智慧城市数字孪生技术评估&#xff0c;2023》报告。智汇云舟凭借在数字孪生领域的创新技术与产品&#xff0c;入选《2023中国数字孪生城市技术提供商图谱》。 报告通过公开征集的形式进行申报&am…

PCkit3如何刷固件

PCkit3如何刷固件 一般在MAPLAB安装时&#xff0c;在安装路径下面都会自带所有烧写器的固件包&#xff0c;找到对应的固件包利用MPLAB进行刷新就行了&#xff0c;具体步骤如下&#xff1a; 首先打开MPLAB软件&#xff0c;然后Programmer->Settings…然后点击configuration …

线程控制+线程tid+线程局部存储+线程私有栈

线程控制函数 今天学习的都是linux线程库中的函数。<pthread.h> pthread_creat()创建线程 int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); 参数 thread:返回线程IDattr:设置线程的属性&…

eclipse怎么导入web项目?看这篇为你解决!

引言【注意】 在导入别人写好或者自己写的web项目要确定以下几点&#xff0c;防止导入的时候出现错误。 确认eclipse的版本&#xff1b;如果web项目是21版的eclipse写的&#xff0c;而你要导入的的eclipse是17版的会出现错误&#xff0c;导入了也没用&#xff0c;运行不出结果。…

Huggingface使用

文章目录 前置安装Huggingface介绍NLP模块分类transformer流程模块使用详细讲解tokennizermodeldatasetsTrainer Huggingface使用网页直接体验API调用本地调用(pipline)本地调用&#xff08;非pipline&#xff09; 前置安装 anaconda安装 使用conda创建一个新环境并安装pytorc…

Qt应用开发(基础篇)——LCD数值类 QLCDNumber

一、前言 QLCDNumber类继承于QFrame&#xff0c;QFrame继承于QWidget&#xff0c;是Qt的一个基础小部件。 QLCDNumber用来显示一个带有类似lcd数字的数字&#xff0c;适用于信号灯、跑步机、体温计、时钟、电表、水表、血压计等仪器类产品的数值显示。 QLCDNumber可以显示十进制…

关于将预留单中增强字段带入物料凭证和会计凭证中

1、业务需求 预留中自定义文本字段“大项修”。根据预留创建物料凭证时&#xff0c;将该字段带入到物料凭证中&#xff0c;类似标准字段“项目文本”。并在物料凭证自动产生会计凭证后&#xff0c;将该字段带入到会计凭证行项目中。 其中需要解决以上三张凭证对该字段的界面显…

c/c++函数可变参数的实现

c语言&#xff0c;利用<stdarg.h> 里面的 typedef char* va_list; void va_start ( va_list ap, prev_param ); /* ANSI version */ type va_arg ( va_list ap, type ); void va_end ( va_list ap );#include <stdio.h> #include <stdarg.h> double Sum(int…

火爆全球的AI艺术二维码到底是怎么做的?

如今&#xff0c;二维码扫描已经成为一种与呼吸一样自然的本能动作。支付、购物、点餐、订票、浏览网页&#xff0c;几乎所有事情都可以通过扫描二维码来完成。你是否可以想象到下面是二维码&#xff1f;AI生成的艺术二维码使二维码瞬间变得高逼格。这些艺术二维码极具吸引力&a…

如何制定项目计划?甘特图告诉你

最近被领导指派负责一个新的项目&#xff0c;我想把项目做成功&#xff0c;给老板留下深刻的印象&#xff0c;同时也给自己的职业生涯添上浓墨重彩的一笔。 但是&#xff0c;项目管理流程很复杂&#xff0c;项目本身也不好做。在收集了与该项目有关的所有信息&#xff0c;并将…

亚马逊搜索关键词下单有哪些好处

在亚马逊上使用搜索关键词进行下单有许多好处&#xff0c;以下是其中一些主要的优点&#xff1a; 1、准确的产品匹配&#xff1a; 通过输入相关的搜索关键词&#xff0c;您可以更准确地找到您所需的产品&#xff0c;从而避免了浏览大量无关的商品页面。 2、节省时间&#xff…

亚马逊买家账号多久可以评论

根据亚马逊的政策&#xff0c;买家账号在购买商品后通常需要等待一段时间才能发布评论。 1、实物商品&#xff1a; 买家需要等待购买商品后的48小时&#xff0c;然后才能发布评论。 2、数字商品&#xff1a; 买家需要等待购买数字商品后的24小时&#xff0c;然后才能发布评论…