java.lang.ClassNotFoundException:找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常

有关java.lang.ClassNotFoundException报错的总结 在运行spark程序的时候,总是报这个错误java.lang.ClassNotFoundException,折磨了我一整天。 现在我解决了这个bug。我就想总结一下遇到这个情况如何排查它。 一、查看自己的运行入口 ${SPARK_HOME}/bin/spark-submit \ #spark指令 --jars /usr/local/hive/auxlib/hudi-spark-bundle_2.11-0.5.2-incubating.jar \ #加载的jar包 --conf spark... 阅读详情
AI摘要

本文聚焦Java中类加载异常,介绍其在动态加载类、自定义类加载器、反射操作等场景的发生情况,分析CLASSPATH配置错误、依赖库缺失等常见原因,给出正确配置CLASSPATH、使用构建工具管理依赖等预防方法,还提及捕获异常和设置回退机制等处理策略。

java.lang.ClassNotFoundException 是 Java 中一种常见的异常,通常在应用程序试图动态加载一个类,而在类路径(CLASSPATH)中找不到相应的类文件时抛出。该异常是一个受检查异常(Checked Exception),这意味着 Java 编译器会强制要求开发者在代码中显式处理这种异常,通常通过 try-catch 块或在方法签名中声明 throws 该异常。

1. ClassNotFoundException 的概述

ClassNotFoundException 继承自 java.lang.Exception,通常在以下场景中发生:

  • 动态加载类:应用程序在运行时根据类名字符串来加载类(例如,使用 Class.forName() 方法)。
  • 依赖库缺失:应用程序运行时依赖的某些类未包含在类路径中,导致无法找到类定义。
  • 反射机制:通过反射机制在运行时加载或调用类的方法时,如果该类不存在,也会抛出此异常。
继承层次结构
java.lang.Object
   └─ java.lang.Throwable
        └─ java.lang.Exception
             └─ java.lang.ReflectiveOperationException
                  └─ java.lang.ClassNotFoundException

2. ClassNotFoundException 的常见使用场景

2.1 动态加载类

Java 提供了动态加载类的能力,允许程序在运行时根据类名字符串加载类,而不是在编译时确定。这种功能通常通过 Class.forName() 方法来实现。如果指定的类在类路径中找不到,Class.forName() 就会抛出 ClassNotFoundException。

示例:
try {
    Class<?> clazz = Class.forName("com.example.MyClass");
} catch (ClassNotFoundException e) {
    e.printStackTrace();  // 处理找不到类的情况
}

在此示例中,程序试图动态加载 com.example.MyClass。如果这个类未在 CLASSPATH 中找到,程序会抛出 ClassNotFoundException。

2.2 自定义类加载器

自定义类加载器允许开发者实现自己的类加载逻辑,用于在特定环境下加载类(如插件系统)。如果自定义类加载器无法找到指定的类,也会抛出 ClassNotFoundException。

示例:
class MyClassLoader extends ClassLoader {
    @Override
    public Class<?> findClass(String name) throws ClassNotFoundException {
        // 自定义加载逻辑
        throw new ClassNotFoundException("Custom loader cannot find the class: " + name);
    }
}

try {
    MyClassLoader loader = new MyClassLoader();
    Class<?> clazz = loader.loadClass("com.example.NonExistentClass");
} catch (ClassNotFoundException e) {
    e.printStackTrace();  // 处理类未找到的情况
}

在这个例子中,MyClassLoader 是一个自定义的类加载器,如果加载器找不到指定的类,抛出 ClassNotFoundException。

2.3 反射操作

反射是 Java 提供的一种强大的功能,允许程序在运行时动态操作类及其方法和属性。在使用反射机制时,如果试图加载或操作一个不存在的类,ClassNotFoundException 便会被抛出。

示例:
try {
    Class<?> clazz = Class.forName("com.example.MyClass");
    Object instance = clazz.getDeclaredConstructor().newInstance();
} catch (ClassNotFoundException e) {
    e.printStackTrace();  // 处理类未找到的情况
}

在此示例中,程序首先尝试通过反射机制加载 com.example.MyClass。如果该类在 CLASSPATH 中不存在,将抛出 ClassNotFoundException。

3. ClassNotFoundException 的常见原因

3.1 CLASSPATH 配置错误

Java 的 CLASSPATH 是 JVM 用来查找类文件的位置列表。如果 CLASSPATH 没有正确配置,JVM 将无法找到需要加载的类,导致 ClassNotFoundException。

常见问题:
  • 忘记将所需的类或库的路径添加到 CLASSPATH 中。
  • CLASSPATH 指定的路径不正确,导致类加载失败。
示例:
# 假设需要加载的类在 lib/example.jar 中
java -cp lib/example.jar com.example.MyClass

在运行应用程序时,确保 lib/example.jar 已经正确包含在 CLASSPATH 中。

3.2 依赖库缺失

许多应用程序依赖于外部库(如第三方 jar 包)。如果这些库没有包含在 CLASSPATH 中,程序在运行时将找不到所需的类,导致 ClassNotFoundException。

常见问题:
  • 未正确添加依赖的 jar 包。
  • 在构建工具(如 Maven 或 Gradle)中未正确声明依赖关系。
示例:
<!-- Maven 项目示例 -->
<dependencies>
    <dependency>
        <groupId>org.example</groupId>
        <artifactId>example-lib</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>

在 Maven 项目中,通过在 pom.xml 中正确声明依赖,确保构建和运行时可以找到所有需要的类。

3.3 类名拼写错误

类名的拼写错误或大小写错误也会导致 JVM 找不到相应的类,从而抛出 ClassNotFoundException。

常见问题:
  • 类名拼写错误,如多了或少了某个字符。
  • 类名大小写错误,例如 Myclass 和 MyClass 是不同的类名。
示例:
try {
    Class<?> clazz = Class.forName("com.example.myclass");  // 拼写错误
} catch (ClassNotFoundException e) {
    e.printStackTrace();  // 处理类未找到的情况
}

确保类名和包名的拼写完全正确,大小写敏感。

3.4 版本不兼容

在软件开发过程中,不同版本的库可能会有不同的包结构或类名。如果程序所依赖的库版本不兼容,可能会导致 ClassNotFoundException。

常见问题:
  • 升级或降级第三方库后,某些类或包的名称发生变化。
  • 类加载器加载了不兼容版本的类库。
示例:
// 假设升级了某个库版本,导致类名或包结构发生了变化
try {
    Class<?> clazz = Class.forName("com.example.OldClassName");  // 老版本类名
} catch (ClassNotFoundException e) {
    e.printStackTrace();  // 处理类未找到的情况
}

在库升级或迁移时,需要仔细检查包结构和类名的变化。

4. 如何预防 ClassNotFoundException

4.1 正确配置 CLASSPATH

确保在 CLASSPATH 中正确配置了所有运行时所需的类路径。包括:

  • 项目中的类文件路径。
  • 所有依赖的第三方库(jar 包)路径。
  • 必要的资源文件路径。
示例:
# 使用 -cp 参数指定类路径
java -cp .:lib/* com.example.MyClass

在命令行中运行 Java 程序时,可以使用 -cp 参数指定类路径,并确保路径正确。

4.2 使用构建工具管理依赖

使用 Maven、Gradle 等构建工具自动管理依赖关系,可以确保所有依赖库正确包含在项目的 CLASSPATH 中,避免手动配置 CLASSPATH 时可能带来的错误。

示例:
<!-- Maven 项目中的依赖声明 -->
<dependencies>
    <dependency>
        <groupId>org.example</groupId>
        <artifactId>example-lib</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>

通过正确声明依赖,Maven 会自动处理依赖库并将其添加到 CLASSPATH 中。

4.3 检查类名和包结构

在代码中,确保类名和包名的拼写正确,并且与实际的类文件结构保持一致。特别是在手动输入类名时,容易出现拼写或大小写错误。

示例:
try {
    Class<?> clazz = Class.forName("com.example.MyClass");  // 确保类名和包名正确
} catch (ClassNotFoundException e) {
    e.printStackTrace();  // 处理类未找到的情况
}

在编写代码时,建议使用 IDE 提供的自动补全功能来减少拼写错误的可能性。

4.4 使用正确的类加载器

在复杂的应用程序(如应用服务器或模块化系统)中,可能存在多个类加载器。确保使用正确的类加载器来加载需要

的类。

示例:
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
    Class<?> clazz = contextClassLoader.loadClass("com.example.MyClass");
} catch (ClassNotFoundException e) {
    e.printStackTrace();  // 处理类未找到的情况
}

通过使用正确的类加载器,可以避免因为加载路径错误导致的 ClassNotFoundException。

5. ClassNotFoundException 的处理策略

5.1 捕获异常并提供有意义的错误信息

捕获 ClassNotFoundException 并记录相关信息(如当前的 CLASSPATH、类名、调用堆栈等),有助于快速定位问题并采取修正措施。

示例:
try {
    Class<?> clazz = Class.forName("com.example.MyClass");
} catch (ClassNotFoundException e) {
    System.err.println("Class not found: " + e.getMessage());
    e.printStackTrace();  // 记录错误信息
}

通过日志记录,可以在异常发生时保留有用的信息,方便调试。

5.2 动态加载时的回退机制

在某些应用场景下,可以实现一个回退机制,当主要类加载失败时,尝试使用其他方式加载类或提供替代方案。

示例:
try {
    Class<?> clazz = Class.forName("com.example.MyClass");
} catch (ClassNotFoundException e) {
    System.out.println("Primary class load failed, attempting fallback.");
    try {
        ClassLoader fallbackLoader = new MyFallbackClassLoader();
        Class<?> clazz = fallbackLoader.loadClass("com.example.MyClass");
    } catch (ClassNotFoundException ex) {
        ex.printStackTrace();  // 处理类未找到的情况
    }
}

通过回退机制,可以在主要加载失败时尝试其他策略,增强程序的健壮性。

总结

java.lang.ClassNotFoundException 是在 Java 应用程序动态加载类时可能遇到的常见问题,通常由于 CLASSPATH 配置不正确、依赖库缺失、类名拼写错误或版本不兼容等原因引发。理解和预防 ClassNotFoundException 的发生,要求开发者正确配置类路径、使用现代构建工具管理依赖、检查类名和包结构,以及在复杂环境中使用正确的类加载器。

在编写代码时,通过捕获和处理 ClassNotFoundException,可以提供更有意义的错误信息,帮助快速定位和解决问题,确保应用程序的可靠性和健壮性。

解决Java.lang.ClassNotFoundException的方法 检查项目的构建工具(如Maven或Gradle)配置文件,确保所需的依赖项已正确声明。如果你使用的是Maven或Gradle等构建工具,可以尝试手动删除本地存储库中的依赖项,并重新构建项目以重新下载依赖项。有时,使用较新的编译器版本可能会导致与旧版本的依赖项不兼容的问题。通过检查类路径、依赖项是否存在、类名和包名是否正确以及编译器版本是否兼容,你应该能够解决Java.lang.ClassNotFoundException异常。检查代码中的import语句和类的使用位置,确保它们与实际的类文件匹配。 阅读详情

相关推荐

正确解决java.lang.ClassNotFoundException异常的有效解决方法

正确解决java.lang.ClassNotFoundException异常的有效解决方法

wbajsjhhhhh的博客 6245

深入解析java.lang.ClassNotFoundException异常

异常是Java编程语言中的一个标准异常类,它继承自类。当在运行时尝试加载类时,如果系统找不到指定的类文件,就会抛出该异常。该异常的作用是通知开发者在运行时无法找到指定的类,可能是由于类文件不存在、类路径配置错误、类加载器无法找到或加载类等原因导致。通过本文的介绍,我们深入解析了异常。我们了解了该异常的定义、作用、产生原因和常见场景。同时,我们也提供了解决该异常的方法和常见解决方案。在日常开发中,遇到异常是常见的。通过掌握异常的原因和处理方法,我们可以更好地解决这个问题,并提高代码的稳定性和可维护性。

博客 3万+

Java异常面试题(2026版)

序列号 内容 链接 1 Java基础知识面试题(2022版) https://blog.csdn.net/qq_43061290/article/details/124023797 2 Java集合容器面试题(2022版) 待续… 3 Java异常面试题(2022版) 待续… 4 并发编程面试题 (2022版) 待续… 5 JVM面试题(2022版) 待续… 6 Spring面试题(2022版) 待续… 7 Spring MVC面试题(2022版) 待续… 8 S....

拉格朗日的学习笔记 5489

java.lang.ClassNotFoundException(通俗易懂)

java.lang.ClassNotFoundException:类找不到异常 造成异常的常见原因: 1 、所需要的支持类库放错了地方,并没有放在类路径(CLASSPATH环境变量)里面。 2 、使用了重复的类库,且版本不一致。导致低版本的被优先使用。 3 、类名错了,一般是使用Class.forName的时候,手工指定了类名的情况。 4 、没有导入纯JAVA驱动...

行者彡的博客 3万+

07. 基础实战篇 - STP的基本配置

STP(生成数协议)是一个用于在局域网中消除环路的协议,他的标准是IEEE802.1d。STP通过强制使部分冗余链路处于阻塞状态,其它链路处于转发状态,将环形网络结构修剪成无环路的树形网络结构。可实现消除环路,当处于转发状态的链路不可用时,STP重新配置网络,并激活合适的备用链路状态,恢复网络连通性。

weixin_39868387的博客 7226

Hermes V0.10.0:官方UI几乎无Bug版

如果你还在观望Hermes,现在可能是最好的入局时机。 因为网页端来了,门槛降到了最低。 如果你已经是Hermes用户,升级就对了。 因为0.9.0的更新,值得一试。

weixin_66295112的博客 2047

Atitit.故障排除系列---NoClassDefFoundError  NoClassDefFoundError ClassNotFoundException

Atitit.故障排除系列---NoClassDefFoundError  NoClassDefFoundError ClassNotFoundException     1. java.lang.ClassNotFoundException找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常。 1 2. 查看cla

attilax的专栏 1084

Ubuntu图形界面崩溃?从tty到GUI的终极修复指南

本文提供了Ubuntu图形界面崩溃后进入tty的终极修复指南。详细介绍了如何诊断显示管理器(如LightDM或GDM3)状态,并通过重装、切换显示管理器、修复依赖、系统升级及排查显卡驱动等核心方案,逐步恢复GUI。帮助用户从命令行界面高效修复桌面环境,避免数据丢失。

vulkan6gpu的博客 778

从Java项目结构理解java项目运行原理

一、概述 很多从事运维的小伙伴,很多是没有java开发经验的,但是日常工作中确又经常要接触处理java类项目,遇到运行报错,凡事诉诸于研发处理,不仅很被动效率也很低,那我们是否从运维角度,只需了解一定java基础就能处理日常的Havana类项目调试呢,尤其是java web类项目,本文基于此展开讨论,以供参考。 参考学习:Java开发网。 二、java 架构及运行原理 首先java是面向对象的,是一种面向对象的编程语言,它是一种编译型和解释型语言的结合体。java中所有的一切都可以看中一种对象,它的整个过

企业实战系列集 ●●● https://ximenjianxue.blog.youkuaiyun.com 717

第44节:cesium 大雾效果(cesium自带)(含源码+视频)

cesium 大雾效果(cesium自带)

qq_29384639的博客 1702

【Proteus仿真】74HC595+74LS154驱动显示16X16点阵

【Proteus仿真】74HC595+74LS154驱动显示16X16点阵

perseverance51博客 2893

java.lang.ClassNotFoundException的解决方法:

【转载于此】 java.lang.ClassNotFoundException的解决方法: 1.java运行环境的jdk版本比class文件的编译版本低了导致 2.class文件的访问权限或者所在目录的访问权限有问题,导致java无法读这个文件 3.jar包有错误,查看jar是否有漏或者重新导入jar包出现 java.lang.classnotfoundexception问题真的是很烦人,找资料解决问题弄了半天时间都没找到方法,走了许多的弯路,最终还是回到了原点找到了问题解决办法,费尽心机最终是解决了,但过

anana125的博客 12万+

【云原生技术】sonar的官方web接口,获取质量阀结果的接口

以下是一个示例思路,说明如何调用 SonarQube 的质量阀查询接口并在前端展示“哪些条件没过”。假设前端使用 AJAX 或 fetch 从后端接口拿到 SonarQube 返回的 JSON(或直接前端请求 SonarQube API),前端再把解析结果展示给用户。测试覆盖率 (Coverage) 当前仅有 60%,未满足最低 80% 的要求,需要补充测试或优化以提升覆盖率。接口),就会返回相应的质量阀状态信息;里使用它来查询当前质量阀(质量门)的状态。,你用它即可获取该次分析的质量阀状态。

weixin_46453070的博客 1281

java.lang.ClassNotFoundException:如何解决

本文适用于当前面临java.lang.ClassNotFoundException挑战的Java初学者。 它将为您提供此常见Java异常的概述,这是一个示例Java程序,可支持您的学习过程和解决策略。 如果您对与更高级的类加载器相关的问题感兴趣,我建议您复习有关java.lang.NoClassDefFoundError的文章系列,因为这些Java异常密切相关。 java.lang...

最佳 Java 编程 7万+

【华为OD技术面-手撕算法代码真题】- 最长公共前缀

🌟 强烈推荐:华为OD技术面试手撕算法代码真题 🌟大家好!今天我给大家推荐一份备受赞誉的华为OD技术面试手撕算法代码真题。所有题目均为华为od实际面试过程中出现的算法代码真题。

算法大师! 4885

RAP 时代的 Service Binding:把 CDS 业务服务稳稳地“插”到 OData 里

本文深入解析SAP ABAP开发中的关键对象Service Binding,阐述了如何通过三层架构(数据模型、服务定义、服务绑定)实现业务逻辑与协议分离。文章重点分析了Service Binding的核心参数配置,包括服务命名规范、协议类型选择(OData V2/V4、InA、SQL)及服务形态(UI Service与Web API),并通过实际案例说明不同选项的应用场景。同时介绍了服务版本控制机制、发布流程及Fiori预览功能,帮助开发者理解如何通过Service Binding将业务能力高效转化为可消费

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 5714

已解决java.lang.ClassNotFoundException异常的正确解决方法,亲测有效!!!

通过本文ClassNotFoundException问题能够得到解决。

小明的Java问道之路 4万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java.lang.ClassNotFoundException问题的解决

作者:朱金灿 来源:https://blog.csdn.net/clever101 调试运行一个java项目出现错误,错误信息如下: 严重: Error configuring application listener of class [com.xxx.pie.client.xxx.xxx] java.lang.ClassNotFoundException: ...

clever101的专栏 7万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

java中java.lang.ClassNotFoundException异常

在java代码中出现这个异常一般是 引入的类没有找到,大致分为以下几种情况: 1、启动时报错,一般是初始化bean的时候报错,可以检查下是不是没有引入对应的java类,或者是不是 引入的时候 点(.)这个符号是中文的,中间有没有空格等 2、调用某个方法报错,检查下是不是没有引入java类(一般IDE会自带检测),看下是不是pom.xml文件没有下好第三方java包等 3、第三方工具启动报错...

头号玩家的博客 4080

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

解析java.lang.ClassNotFoundException异常

java.lang.ClassNotFoundException异常是Java编程中的一个标准异常类。它继承自java.lang.Exception类,属于检查型异常。当尝试加载一个类时,如果无法找到该类的定义,就会抛出该异常。该异常的特点是它会在运行时抛出,而不是在编译时。这意味着在编译时不会出现错误,但在程序运行时会抛出异常。java.lang.ClassNotFoundException异常是Java编程中常见的异常之一。了解和处理该异常对于开发人员来说非常重要。

博客 1万+

java.lang.ClassNotFoundException的解决方法

java.lang.ClassNotFoundException的解决方法 出现这个问题的原因可能很多,但是最终原因都是部署的项目文件中没有这个类包。 那么出错的点在哪呢?逐一排除! 1.首先在项目文件中没有添加相应的jar包,可以在maven dependenc...

qq_40293486的博客 9万+

ClassNotFoundException(类未找到异常) 常出现的原因和解决步骤

表示在尝试加载类时找不到该类。这可能发生在运行时,通常是由于类路径不正确或缺少相应的类文件。以下是。

Java开源程序猿 1万+

java.lang.ClassNotFoundException异常问题原因总结

常会遇到报找不到类的问题,有时是没有引入相关类,但很多时候明明是有的,现把原因简单总结如下: 1、java.lang.ClassNotFoundException: com.alibaba.nacos.client.logging.NacosLogging 调试spring cloud alibaba总报这个错,查到对应包nacos-client-2.0.3有此类,双击无法打开,果断判断是包下载问题,去仓库删除下载包,maven重新下载,搞定! 2、还有一种常见的报错原因是引入了不同版本的包,两个包都

u011017880的专栏 5万+

ClassNotFoundException解决方案总结

相信很多初学Android的会遇到这个问题,在此做一个总结,方便日后查阅。 1,首先说一下异常 ClassNotFoundException:类找不到异常。首先看你的logcat中是否显示Caused by : java.lang.ClassNotFoundExcetion.. 2,产生条件 什么时候会抛出classnotfoundException异常呢?这涉及到底层的API。

fanfan 15万+

关于解决 错误: 找不到或无法加载主类 原因: java.lang.ClassNotFoundException 的方法

前言 最近跟b站学java基础,前期是一直用EditPlus和cmd去进行编码、编译和运行,然后遇到如题报错,这里收集了多篇文章的解决方法,做了一份合集,基本都能解决。如有缺漏,欢迎评论区补充~~~ 报错 解决方案: 1.在cmd输入java、 javac和java -version命令是否正常执行 这决定了你是否已经安装好JDK以及配好环境变量,如果正常如下图 输入"java" 输入"javac" 输入"java -version" 2.检查环境变量是否配置了classpath //能够执行jav

学无止境,勤则可达;志存高远,恒亦能成! 7万+
上一篇: java.lang.InstantiationException:实例化异常。当试图通过newInstance()方法创建某个类的实例,而该类是一个抽象类或接口时,抛出该异常
下一篇: java.lang.ArithmeticException:算术条件异常。譬如:整数除零等
Flying_Fish_Xuan
Flying_Fish_Xuan 新星创作者: 后端开发技术领域 新星创作者: 后端开发技术领域
博客等级 码龄5年 1万+粉丝 2409原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Flying_Fish_Xuan

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值