JDK1.5 注释语法(Annotations)新鲜试用

从数据爬取到模式识别:构建硬件缺陷分析平台的技术实践 数据爬取与数据分析是获取和洞察信息的基础技术。其原理在于通过自动化脚本从公开网络源采集数据,并运用统计与机器学习方法挖掘潜在模式。这项技术的核心价值在于将非结构化、分散的信息转化为结构化、可量化的证据,为决策提供数据支撑。在硬件质量评估、供应链风险分析等场景中,它能帮助识别共性故障与潜在批次问题。本文以硬件缺陷调查为例,详细拆解了从模拟数据采集、清洗存储,到进行故障率统计、时间序列分析和文本聚类验证的完整技术流程,并探讨了构建此类分析平台涉及的合规边界与工程实践。 阅读详情
在我的上一篇文章JDK1.5新特性介绍中,我们介绍了JDk1.5新增的6个基本特性,本文继续介绍JDK1.5另外一个秘密武器,新的注释语法(Annotations)。


    其实说起注解语法,对于任何一个Java开发人员来说都已经耳熟能详了,我们每天都在使用着 @author, @param,等等编写注释,然后用javadoc生成文档。Java的这种方便的文档生成方法受到了开发者的普遍赞誉。而从JDK1.5开始,注释语法提供了更为强大的功能。


   我们先谈谈注释语法本身,它有时候也称为meta-data  :“描述数据的数据” 。一般来说它们可以被用来生成文档,检查代码间依赖关系,帮助编译器作语法检查。时下比较流行的工具有Xdoclet等。对于文档生成早已经有了javadoc工具的完美表现,而对于代码检查,如今java也提供了语言级的支持。
    
    我们知道,javadoc是通过提取java源文件中的标签信息来生成文档。所以要学习新的注释语法,们首先要熟悉的就是新增的标签。新的注释语法支持两种标签,系统标准标签和用户自定义标签。标签的符号也原先一样,@符号加上标签名字。我们先从JDK1.5自带的标准标签说起。

    首先介绍@override , 也不用多罗嗦,顾名思义了,就是用来说明方法覆载的。我们假设有一个子类必须要覆载父类的方法.

================================================================================
public class Parent{

    public void foo(){
        System.out.println("Original Implementation of foo");
    }

}

public class Child extends Parent{

    @Override
    public void foo(){
        System.out.println("Overide Implementation of foo");
    }

}
================================================================================

    目前为止我们看不出来这个@Override给我们带来了任何好处,所以我们先说说加个这个标签后,我们用javac编译的时候编译器执行了些什么呢?编译器会检查这个方法,然后从父类查找是否有这个方法,否则就编译出错。这个特性可以帮助我们避免一些低级错误。上面这个例子,子类想覆载foo()方法,不过你可能一时疏忽把它写成了fob(), 对于这样的”低级错误”,如果你没有在前期就发现的话,到系统集成测试的时候,可能会化上你几个小时甚至一两天去找出这样的bug。现在好了,编译器在编译的时候就会给出错误,

Child.java:3: method does not override a method from its superclass
    @Override
     ^
1 error
怎么样,这个功能还不错吧。

    看过了标准标签的使用方法,我们来看看用户自定义标签。首先介绍@interface, 它用于定义新的注释类型(annotation type)。新建一个注释类型看起来和定义一Interface 没有什么两样,
MyTag.java用于新建一个用户自定义标签,代码如下,

================================================================================
package tiger.annotation;
/**
 * 用户自定义标签??MyTag
 */
public @interface MyTag { }

定义了一个tag之后,我们就可以在任何java文件中使用这个tag了,
import tiger.annotation.MyTag;
public class TagTest{
    
    @MyTag
    public void testTag(){
    }
}
===============================================================================

注释类型还可以有成员变量,

==============================================================================
package tiger.annotation;
/**
 * 用户自定义标签??带有成员变量的MyTag
 */
public @interface MyTag {

    String name();

    int age();
}
=============================================================================

然后我们可以这么使用这个标签,
    @MyTag(name="MyTag",age=1)
    public void testTag(){
    }

    使用标签最终是为了帮助开发人员提取注释信息,然后根据不同需求做进一步处理,下面我们来看看如何获取注释信息。

=============================================================================
import java.lang.annotation.Annotation;
import tiger.annotation.MyTag;
public class TagTest{
    
    @MyTag(name="MyTag",age=1)
    public void test(){
    }

    public static void main(String[] args){
        TagTest tt = new TagTest();
        try {
            Annotation[] annotation =tt.getClass().getMethod("test").getAnnotations();
            for (Annotation tag :annotation)  {             
              System.out.println("Tag is:" + tag); 
              System.out.println("tag.name()" + ((MyTag)tag).name());
              System.out.println("tag.age()" + ((MyTag)(tag)).age());
             } 
         } catch(NoSuchMethodException e) { 
             e.printStackTrace(); 
         } 
    }
}
===============================================================================

    需要注意的一点是,在执行这段代码之前我们还有一点小工作要做,还需要给我们的自定义标签MyTag加上一个说明标签,@ Retention, 表明注释信息将可以在运行时刻通过反射机制得到。如果不加入这个标签,上面的代码将没有任何输出。修改以后的MyTag如下,

================================================================================
/**
 * 用户自定义标签??带有成员变量的MyTag
 */
@Retention(RetentionPolicy.RUNTIME)
public @interface MyTag {

    String name();

    int age();
}
================================================================================

然后我们执行TagTest可以得到输出如下,


Tag is:@tiger.annotation.MyTag(name=MyTag, age=1)
tag.name()MyTag
tag.age()1

    好了,Tiger新的注释语法基本用法就这么简单,基本用法虽然简单,但是获取注释信息之后如何处理确很值得推敲,我们可以用他们来做一些语法检查,文件相关性检查,进行各种统计等等。关于更多的Tiger新注释语法的信息,可以访问[link= http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html]。


以上代码在win2k + j2se5 GA下通过。
本地部署AI角色生成项目:从环境搭建到API集成的完整实践指南 AI生成技术正从通用模型向角色定制化方向演进,其核心原理是通过微调或LoRA等技术,在基础模型上学习特定角色的特征。这项技术的价值在于为内容创作者和开发者提供了低成本、高自由度的个性化内容生成能力,尤其适用于二次元同人创作、个性化语音助手等场景。在工程实践中,本地部署这类项目需要关注环境配置、资源优化和API集成等关键环节。本文以角色定制化AI项目为例,详细介绍了从Python环境搭建、依赖安装到功能测试、性能监控的全流程,并重点探讨了如何通过API接口实现语音合成与图像生成的批量处理,为开发者集成AI生成 阅读详情

相关推荐

基因组数据库批量下载——NCBI/Ensembl、FASTA格式、批量下载、数据解析、基因组数据流程

图6: 基因组数据批量获取完整工作流本文系统介绍了基因组数据库批量下载的完整技术方案,从NCBI的ncbi-genome-download和NCBI Datasets CLI,到Ensembl的REST API、FTP和BioMart三种下载方式,再到FASTA格式的解析、验证与预处理,最后给出了性能优化策略和自动化脚本。通过这套方案,研究者可以将基因组数据获取的效率提升10-20倍,将更多精力投入到核心的科学分析中。核心要点回顾。

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 134

Annotation注解(1.5新特性)

Annotation注解(1.5新特性)注解就相当于一个你的源程序中要调用一个类,要在源程序中应用某个注解,得先准备好了这个注解类。就像你要调用某个类,得先有开发好这个类。@SuppressWarnings("deprecation")@Deprecated 过时的@Override 覆盖标记可以加在包,类,字段,方法,局部变量上,可以加多个package ZHANG.Annotation; @ZhangAnnotation(color="red",value="abc",arrayAttr=1)

JAVA之路 866

半监督学习实战:基于Yelp数据的虚假评论检测系统构建

在自然语言处理(NLP)与异常检测领域,半监督学习是一种有效解决标注数据稀缺问题的关键技术。其核心原理在于利用少量标注数据和大量未标注数据共同训练模型,通过自训练(Self-Training)等策略,让模型在迭代中自我完善,从而挖掘数据中的潜在规律。这项技术的价值在于,它能够以较低的成本,在诸如内容安全、电商风控等需要处理海量无标签数据的场景中,构建出高精度的分类模型。具体到虚假评论检测这一应用,系统通过结合PU Learning(正例与未标注学习)与自训练,从评论文本中提取TF-IDF、情感得分、统计特征

weixin_33994429的博客 360

Android Studio1.5 配置Android annotations

Android annotation官网:https://github.com/excilys/androidannotationsAndroid annotation官网中有提到在Gradle中要怎么配置: https://github.com/excilys/androidannotations/wiki/Building-Project-Gradle我也是参考上面的配置的.我的配置如下,要配

蚂蚁的专栏 1万+

【脚本篇】---spyglass lint脚本

【代码】【脚本篇】---spyglass lint脚本。

冬瓜 6359

Global Mapper与ArcGIS双剑合璧:自动化与半自动矢量化提取地物轮廓实战

本文详细介绍了如何结合Global Mapper的自动化批量提取与ArcGIS的半自动精细修整功能,高效完成地物轮廓矢量化工作。通过实战案例,阐述了利用Global Mapper快速抓取初步轮廓,再借助ArcGIS的ArcScan等工具进行精细化编辑和优化的完整工作流,有效提升地理信息数据处理效率。

weixin_29284657的博客 119

JDK1.5 注解(Annotations)[转]

其实说起注解语法,对于任何一个Java开发人员来说都已经耳熟能详了,我们每天都在使用着 @author, @param,等等编写注释,然后用javadoc生成文档。Java的这种方便的文档生成方法受到了开发者的普遍赞誉。而从JDK1.5开始,注释语法 提供了更为强大的功能。    我们先谈谈注释语法本身,它有时候也称为meta-data   :“描述数据的数据” 。一般来说它们可以被用...

xiangxingchina 183

Kubernetes CRD 系列(一):CRD 介绍

CR(Custom Resource)其实就是在 Kubernetes 中定义一个自己的资源类型,是一个具体的 “自定义 API 资源” 实例,为了能够让 Kubernetes 认识这个 CR,就需要让 Kubernetes 明白这个 CR 的宏观定义是什么,也就是需要创建所谓的 CRD(Custom Resource Definition)来表述。 可能这么说并不是太直观,换个方式表达一下,我们想要创建一个 Pod 的时候,那么会编写一个 YAML 配置,然后前两行一般会这么写: [root@l

会哭的雨@的博客 7922

JDK1.5的annotation

[code="java"]public enum ElementType { /** Class, interface (including annotation type), or enum declaration */ TYPE, /** Field declaration (inlcudes enum constants) */ FIELD, ...

justshare的专栏 214

STM32H5 USB虚拟串口:用Classic驱动移植CDC实践

USB虚拟串口(CDC)是嵌入式系统最常用的主机通信方式之一,本质是借助USB协议模拟串口收发,无需额外驱动即可在PC上生成COM口。其实现依赖USB设备协议栈完成枚举、控制传输与批量传输。传统USBD Classic库不依赖RTOS,代码轻量、调用链短,非常适合裸机或轻量状态机架构;而USBX功能强大但需要ThreadX内核,资源开销较大。在电机控制器、传感器采集等场景中,日志输出与参数配置仅需简单的双向数据通道,Classic驱动往往更务实。本文基于STM32H5平台,详细梳理了使用Classic驱动移

weixin_29178069的博客 336

COLMAP生成MVSNet数据集

COLMAP生成MVSNet数据集

qq_43307074的博客 5638

AI音乐创作实战:从人声分离到音色转换的技术实现与合规指南

语音合成与歌声合成是人工智能在音频处理领域的核心应用,其原理是通过深度学习模型学习并模拟人类声音的特征与歌唱模式。这项技术的价值在于能够高效地实现音色转换、音乐风格迁移和个性化内容生成,极大地拓展了音乐创作与二次创作的边界。在应用场景上,它广泛服务于音乐制作、内容创作、技术验证与创意表达。本文以AI驱动的音乐翻唱案例为切入点,深入探讨了如何利用开源工具链,如So-VITS-SVC和Demucs,构建一个完整的AI音乐创作流水线,涵盖了从环境部署、人声分离、音色克隆到最终混音的技术细节与工程实践,并着重强调了

weixin_30596023的博客 385

紫光展锐面试——FPGA/IC设计面试面经案例总结

自我介绍;研究生的主要研究方向是什么?为什么想要应聘数字芯片相关的工作?简单介绍下数字IC设计流程。逻辑综合主要做什么?你有实际做过逻辑综合工作吗?你了解SS corner和FF corner吗?综合时应该使用哪个corner?综合时需要考虑hold吗?为什么?提高时钟频率对setup和hold有什么影响?为什么?hvt、rvt/svt、lvt有什么区别?c40、c50是指什么概念?有什么区别?你对EDA工具有过了解吗?

FPGA/MATLAB学习教程/源码/项目合作开发 1565

Shieldstral-3B:在树莓派上部署安全高效的本地大语言模型实战指南

大语言模型(LLM)通过海量数据训练获得理解和生成自然语言的能力,其核心原理基于Transformer架构的自注意力机制。在工程实践中,模型量化技术通过降低参数精度来减少内存占用和计算开销,使模型能在资源受限的设备上运行。对于需要高安全性的应用场景,模型对齐技术确保输出符合伦理规范和安全准则。本文以Mistral AI最新开源的Shieldstral-3B模型为例,详细解析如何通过4-bit量化在消费级硬件上部署安全可靠的对话AI,并提供了完整的代码实现和性能优化方案。

weixin_30954265的博客 323

太空安全卫士:基于YOLOv5的空间态势感知系统(实现轨道碰撞预警与太空环境保护)

做完这个项目,你会发现自己完整走过了“数据采集→标注→模型训练→功能集成→界面开发”的毕设全流程,这不仅是技术能力的证明,更是对“技术守护宇宙安全”这一理念的实践。答辩时,你可以重点讲这几点:系统解决了航天监测的哪些痛点、YOLOv5在太空目标检测中的性能优势、系统未来能怎么优化(比如对接航天监测网络、实现实时轨道预测)。未来,这个系统还能往“更智能”的方向发展:比如结合轨道计算预测碰撞风险、开发移动端APP让天文爱好者参与太空垃圾上报、在航天任务中实现全自动避障决策……想象空间很大。

m0_71589036的博客 91

93.华为路由器:IPSec加密GRE通道(GRE over IPsec)

IPSec加密GRE通道 由于GRE隧道不提供安全性保障,使用ipsec加密gre隧道是现网中比较常用的VPN部署,它的加密方式分为两种: 可以使用IPsec来加密隧道进行传输,叫做IPsec over GRE; 加密数据流后从隧道传输,称为GRE over IPsec。 下面将配置一个简单的IPsec over GRE实验。 一、搭建模拟环境 首先我们先搭建环境,先根据拓扑图把基本的IP地址配好,然后分别在AR1、AR3加两条静态路由,使得两个公网互通。 [AR1]in g0/0/0 [AR

迷逝 1万+

Python爬虫实战:从静态解析到反爬应对,完整实现图片采集项目

网络爬虫作为数据采集的核心技术,其原理是通过模拟浏览器行为向服务器发送HTTP请求,获取并解析HTML文档,进而提取结构化数据。这项技术的数据价值在于能够自动化收集公开网络信息,为数据分析、市场研究、内容聚合等场景提供原料。在工程实践中,爬虫开发者常需应对网站的反爬机制,例如通过设置请求头、控制访问频率等策略来模拟人类操作。针对静态内容为主的网站,使用Requests库发送请求配合BeautifulSoup进行HTML解析是经典方案。本文以Python爬虫实战为例,详细拆解了从分析网站结构、处理图片懒加载技

weixin_34176694的博客 412

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

annotation java 支持版本_Spring / Java错误:JDK 1.5及更高版本上的名称空间元素'annotation-config'…...

我有使用Compiler兼容级别1.5编译的Spring / Java App 。我有一个新的Linux设置,我在其中下载了Apache Tomcat 8.0.8。我下载了JDK 8u5。我在bash中设置路径,如下所示:PATH=$PATH:$HOME/jdk1.8.0_05/binexport PATHJava版本报告:java version "1.8.0_05"Java(TM) SE Ru...

weixin_34550241的博客 189

深度学习工具包 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")

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Annotation

注解不会直接影响程序的运行,但是第三方程序或工具可以利用代码中的注解完成特殊的任务,间接控制程序的运行。对于RetentionPolicy.RUNTIME保留期限的注解,我们可以通过反射机制访问类中的注解,进行程序控制

hanjiancanxue_liu 592

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

完美解决 No IDEA annotations attached to the JDK 1.8 (C:\Program Files\Android\Android Studio\jre)

问题背景 今天上午打开AS后突然发现所有xml界面无法预览,打开class文件也发现从头到尾全是错误,在class文件界面上方提示No IDEA annotations attached to the JDK 1.8 (C:\Program Files\Android\Android Studio\jre)… 头一次遇见这个问题,只好百度,最后在stackoverflow找到一个解决方案,试了一试...

沃克哈德の博客 4万+

Java注解(Annotations)基础

1、注解能做什么? 源码:在源代码上做注释,生成文档注释 编译:编译时候检查代码错误和警告 JVM:可以利用Annotations生成代码,XML文件等 2、注解的使用 @注解名称(属性名=属性值,属性名={属性值1,属性值2,.......},.........) 在...

SH.blog 457

Java基础学习——注解(Annotations)学习

注解(Annotations)是一种元数据,提供了程序之外的一些程序信息。注解并不会直接影响被注解的代码。本文介绍了注解的格式,何时使用注解,如何使用注解,注解的声明,JDK内置的注解及元注解,以及JDK 8最新支持的重复注解的各种使用方法。

双湖之梦的专栏 5041

java annotations详解_Java Annotation详解(一): 理解和使用Annotation

JDK1.5之后,引入了元数据的概念,也就是Annotation(注释),其实它是代码里的特殊标记,这些标记可以再编译、类加载、运行时被读取,并执行相应的处理。元数据的作用:如果要对于元数据的作用进行分类,目前还没有明确的定义,不过我们可以根据它所起的作用,大致可分为三类:1.编写文档:通过代码里标识的元数据生成文档。2.代码分析:通过代码里标识的元数据对代码进行分析。3.编译检查:通过代码...

weixin_39981360的博客 590

JDK8新特性:重复注解Repeating Annotations

注解并不是什么新鲜东西了,比如spring中存在大量注解简化我们的配置。但是在JDK8之前,我们是不能使用重复注解的,即某个位置相同注解只能出现一次。这里有个使用@Repeatable( Schedules.class )的注解类Schedule,Schedules仅仅是Schedule注解的数组,但Java编译器并不想让程序员意识到Schedules的存在。这样对使用者而言,Target就拥有了两个Schedule注解,而不是1个Schedules注解。同时,反射相关的API提供了新的函数getAnnot

aty 3310

jdk内置 Annotation(注解)

jdk内置 Annotation(注解) 介绍 Annotation(注解)是为了解决项目中配置文件太多而导致开发复杂而产生的,jdk内置的注解有三个:@Override、@Deprecated、@SuppressWarnings 讲解 一、重写注解:@Override 重写注解平时见的比较多,在这里不过多讲解。 二、过期注解:@Deprecated 在版本更新的时候,我们可能提供新的方法用于...

bugcat的博客 306
上一篇: 转换中文的方法
下一篇: J2SE5.0新特性之枚举类型
start_java
博客等级 码龄22年 5粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值