ASList

标签平滑Label Smoothing

生来就可爱ヽ(ⅴ<●) 提交于 2020-10-23 03:28:28
Lable Smoothing 是分类问题中错误标注的一种解决方法。 对于分类问题,特别是多分类问题,常常把向量转换成one-hot-vector(独热向量) one-hot带来的问题:(对于独热的简单解释:https://blog.csdn.net/qq_43211132/article/details/96141409) 对于损失函数,我们需要用预测概率去拟合真实概率,而拟合one-hot的真实概率函数会带来两个问题: 1)无法保证模型的泛化能力,容易造成过拟合; 2) 全概率和0概率鼓励所属类别和其他类别之间的差距尽可能加大,而由梯度有界可知,这种情况很难适应。会造成模型过于相信预测的类别。 使用下面的 label smoothing 可以缓解这个问题: 原理:对于以Dirac函数分布的真实标签,我们将它变成分为两部分获得(替换)。 第一部分:将原本Dirac分布的标签变量替换为(1 - ϵ)的Dirac函数; 第二部分:以概率 ϵ ,在u(k) 中份分布的随机变量(u(k)是类别分之一) 代码: def label_smoothing(inputs, epsilon=0.1): K = inputs.get_shape().as_list()[-1] # number of channels return ((1-epsilon) * inputs) + (epsilon

Java刷题常用API整合

我与影子孤独终老i 提交于 2020-10-18 09:12:02
零:输入、输出 远程在线面试的手撕代码环节,通常需要白板上写代码。 如果需要在控制台输入、输出,需要借助Scanner类。 示例如下: import java . util . Scanner ; public class Solution { public static void main ( String [ ] args ) { Scanner scanner = new Scanner ( System . in ) ; //方法1:一般用来接收数组。以空格分界 while ( scanner . hasNext ( ) ) { int num = scanner . nextInt ( ) ; /*或者*/ String next = scanner . next ( ) ; } //方法2:一般用来接受字符串。以换行符分界 while ( scanner . hasNextLine ( ) ) { String str = scanner . nextLine ( ) ; } } 一:Integer 类 1.String -> int: int value = Integer.parseInt(str); 2.将str转换成二进制的int: int binary = Integer.parseInt(str,2); 3.十进制转二进制: String binaryN

你知道Java数组转List的三种方式及对比吗?

和自甴很熟 提交于 2020-10-16 08:37:43
前言: 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析。 一.最常见方式(未必最佳) 通过 Arrays.asList(strArray) 方式,将数组转换List后,不能对List增删,只能查改,否则抛异常。 关键代码:List list = Arrays.asList(strArray); private void testArrayCastToListError() { String[] strArray = new String[2]; List list = Arrays.asList(strArray); //对转换后的list插入一条数据 list.add("1"); System.out.println(list); }1234567 执行结果: Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList.java:148) at java.util.AbstractList.add(AbstractList.java:108) at com.darwin.junit.Calculator.testArrayCastToList

第十五章 泛型

拜拜、爱过 提交于 2020-10-14 19:26:39
文章目录 1.概念 2.简单泛型 一个元组类库 3.泛型接口 4.泛型方法 一个set使用工具 5.匿名匿名内部类 6.构建复杂模型 7.擦除的神秘之处 迁移兼容性 边界处的动作 8.擦除的补偿 泛型数组 9.边界 10.通配符 通配符 无界通配符 11.泛型中的问题 任何基本类型都不能作为类型参数。 由于擦除的原因,泛型不能重载 12.自限定的类型 自限定 参数协变 13.动态类型安全 14.异常 catch语句不能捕获泛型类型的异常,但可以作为方法签名上throws 异常部分 15.混型 使用装饰器模型 动态代理可以实现近似的混型 16.潜在类型机制 17.对缺乏潜在类型机制的补偿 反射 18.将函数对象用作策略 1.概念 泛型实现了“参数化类型”的概念 2.简单泛型 泛型的主要目的:用来指定容器要持有什么类型对象,而且由编译器来保证类型的正确性 一个元组类库 (1) 元组(又称:数据传递对象或信使):它是将一组对象直接打包存储与其中的一个单一对象。这个容器对象允许读取其中元素,但不允许存放新对象 (2) 元组隐含的保持了其中元素的次序 (3) 元组中的对象可以是任意类型 (4) 元组利用继承机制增加长度 (5) 声明为final元素被构造出来便不能赋其他值,保护了public元素 3.泛型接口 生成器(generator):负责创建对象的类 Java泛型的局限性

SpringBoot2.X + EasyExcel(76)

萝らか妹 提交于 2020-10-07 04:32:16
官网: EasyExcel 其他简单Excel框架: ExcelUtil 1、pom依赖 <dependency> <groupId> com.alibaba </groupId> <artifactId> easyexcel </artifactId> <version> 2.2.6 </version> </dependency> 2、实体类 @Data @NoArgsConstructor @AllArgsConstructor public class User { @ExcelProperty ( value = "姓名" ) private String userName ; @NumberFormat ( "#.##%" ) @ExcelProperty ( value = "体脂率" ) private double fat ; @ExcelProperty ( value = "编写日期" ) private String birthday ; } 3、导出数据 @GetMapping ( value = "/write" ) public String write (){ String url = "/Users/mac/Desktop/76521.xlsx" ; List<User> list = Arrays. asList ( new User( "刘飞"

我的开发日记(十)

≡放荡痞女 提交于 2020-10-07 00:23:29
最近开发基本都是在搬砖,补漏洞,今天正式部署到服务准备联调了,中间遇到了一些难点。 字符编码 由于时间紧迫没有来得及研究,只是根据日志和经验找到了解决方案。这里用到了非常基础的 Java 知识,幸好我没有忘干净。 首先,在 build.gradle 中要指定编码格式,如下: tasks.withType(JavaCompile) { options.encoding = "UTF-8" } 其次呢,在过滤器里面我是读去 request 和 response 的 ServletOutputStream 中的内容用来写入日志的,所以还需要会写到原来的对象中,这里就有一个坑,也需要指定编码格式。 @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; ResponseWrapper responseWrapper = new

聊聊claudb的pubsub command

寵の児 提交于 2020-10-03 04:57:11
序 本文主要研究一下claudb的pubsub command PublishCommand claudb-1.7.1/src/main/java/com/github/tonivade/claudb/command/pubsub/PublishCommand.java @Command("publish") @ParamLength(2) public class PublishCommand implements DBCommand, SubscriptionSupport, PatternSubscriptionSupport { @Override public RedisToken execute(Database db, Request request) { String channel = request.getParam(0).toString(); SafeString message = request.getParam(1); return integer(publishAll(getClauDB(request.getServerContext()), channel, message)); } private int publishAll(DBServerContext server, String channel, SafeString message)

Java批量修改文件名

送分小仙女□ 提交于 2020-10-02 09:46:26
package com.javaee.demo; import java.util.*; import java.io.*; public class FileDemo { public static void main(String[] args) { String path = "E:\\学习\\尚硅谷-全栈在线教育项目-谷粒学院【Vue.js+Spring Cloud Alibaba】\\课件\\谷粒学院笔记"; File file = new File(path); ForFile(file); } // 批量修改文件 public static void batchUpdate(String pathname) { File file = new File(pathname); String[] flist = file.list(); Arrays.asList(flist).stream().forEach(x -> { if (x.contains("ziw")) { String cc = x.replace("ziw", "zip"); File old = new File(pathname + File.separatorChar + x); File nfile = new File(pathname + File.separatorChar + cc);

Java Stream操作

假装没事ソ 提交于 2020-10-01 14:41:37
Stream的基本概念 Stream和集合的区别: 1.Stream不会自己存储元素。元素储存在底层集合或者根据需要产生。 2.Stream操作符不会改变源对象。相反,它会返回一个持有结果的新的Stream。 3.Stream操作可能是延迟执行的,这意味着它们会等到需要结果的时候才执行。 Stream操作的基本过程,可以归结为3个部分: 创建一个Stream。 在一个或者多个操作中,将指定的Stream转换为另一个Stream的中间操作。 通过终止(terminal)方法来产生一个结果。该操作会强制它之前的延时操作立即执行,这之后该Stream就不能再被使用了。 中间操作都是filter()、distinct()、sorted()、map()、flatMap()等,其一般是对数据集的整理(过滤、排序、匹配、抽取等)。 终止方法往往是完成对数据集中数据的处理,如forEach(),还有allMatch()、anyMatch()、findAny()、 findFirst(),数值计算类的方法有sum、max、min、average等等。终止方法也可以是对集合的处理,如reduce()、 collect()等等。reduce()方法的处理方式一般是每次都产生新的数据集,而collect()方法是在原数据集的基础上进行更新,过程中不产生新的数据集。 List nums = Arrays

Springboot 添加druid监控

情到浓时终转凉″ 提交于 2020-10-01 11:21:04
pom <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version> 1.1 . 9 </version> </dependency> yml spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver - class - name: com.mysql.cj.jdbc.Driver url: jdbc:mysql: // localhost:3306/shiroDemo?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 username: root password: root initialSize: 5 # 配置Druid的其他参数,以下配置必须增加一个配置文件才能有效 # 初始化大小,最小,最大 minIdle: 5 maxActive: 20 # 获取连接等待超时的时间 maxWait: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒