- 博客(53)
- 收藏
- 关注
原创 损失函数和优化算法
损失函数可以用来衡量模型拟合程度,通过计算模型预测的输出与实际标签之间的差异可以获得一个损失值,然后。假设该损失函数只涉及一个自变量w,易于求得该损失函数的梯度得到一个较佳的损失值。,即损失函数对参数w的偏导,同理参数b也可以这样求导,最后计算出损失函数的梯度。而实际中,一个损失函数涉及大量自变量(参数),直接求偏导太复杂,可以根据。,然后求损失函数对自变量w、b的偏导,这里以求对w的偏导为例。是损失函数的两个自变量,函数训练得到的两个参数。是训练后得到的函数,然后定义损失函数。最后一层即输出层,计算。
2024-11-23 18:12:29
817
原创 卷积神经网络各层介绍
通常会将全连接层的维度设为类别数量或通过Softmax函数输出每个类别的概率分布(有时全连接层不需要加入激活函数,如使用CrossEntropyLoss损失函数计算损失时会用到Softmax激活函数),从而实现对输入数据的分类。另一种说法是,全连接可以是卷积核大小为输入特征大小的卷积运算,卷积的结果为一个节点,对应全连接层的一个点。卷积是使用一个卷积核(滤波器)对矩阵进行内积(相乘后求和)的操作,通过该操作可以获得输入矩阵(图片)的重要信息,在此基础上,更深层次的卷积操作会获得更重要的特征信息。
2024-11-21 16:48:58
1084
1
原创 下载相应版本的PyTorch
PyTorch各稳定版本下载链接:https://download.pytorch.org/whl/torch_stable.html。从上图可以发现python3.10可以下载格式为cp310-cp310-win_amd64的whl文件。2、查看该Python版本可以下载的whl文件格式。下载某个版本的Python,本文涉及的。注意cpu和cu(cuda)的区别。3、下载PyTorch版本。4、检验是否下载成功。
2024-10-09 20:12:09
888
1
原创 Spring框架常用注解
/ 其他属性和方法:用于标识 Spring MVC 中的控制器组件。控制器通常负责接收来自前端的请求,处理业务逻辑,并返回相应的视图或数据给前端。被 @Controller 注解的类可以定义请求映射和处理方法@Service:用于标识业务逻辑服务组件。服务层通常处理复杂的业务逻辑,并可能与数据访问层(如DAO层)进行交互。@Service 注解的类通常包含业务逻辑的实现:用于标识数据访问层组件,通常用于封装对数据库的访问。
2024-04-01 09:39:17
1020
原创 MyBatis 学习(七)之 缓存
MyBatis 缓存是 MyBatis 中的一个重要特性,用于提高数据库查询的性能。MyBatis 提供了一级缓存和二级缓存两种类型的缓存机制。一级缓存:一级缓存(本地缓存)是 MyBatis 中默认的缓存机制,它是SqlSession级别的缓存。当 SqlSession 执行一次查询时,查询到的结果集会存储在 SqlSession 的缓存中。当 SqlSession 再次执行相同的查询时,它会首先从缓存中获取结果,而不会再次查询数据库。一级缓存是基于事务的。
2024-03-02 16:27:20
1569
原创 MyBatis 学习(六)之动态 SQL
动态 SQL 是 MyBatis 强大特性之一,极大的简化我们拼装 SQL 的操作。MyBatis 的动态 SQL 是基于 OGNL 的( Object Graph Navigation Language ,对象图导航语言),它是一种强大的表达式语言,通过它可以非常方便的来操作对象属性, 类似于 EL,SpEL 等的表达式。if 标签用于条件判断,根据条件是否满足来决定是否包含某个元素。where 标签用于生成 WHERE 子句,并会自动去掉(忽略)第一个条件的 and 或 or 关键字,避免语法错误。
2024-03-02 11:20:19
1467
原创 MyBatis 学习(五)之 高级映射
在之前的 SQL 映射文件中提及了 resultMap 元素的和标签,这两个标签是用来的,它们的属性几乎一致,以下是对它们属性的描述,红色标注的是常用属性。
2024-03-01 23:09:08
917
原创 MyBatis 学习(四)之 SQL 映射文件
映射器是 MyBatis 中最复杂并且是最重要的组件。它由一个接口和 SQL 映射文件(或者注解)组成。在映射器中我们可以配置各类 SQL、动态 SQL、缓存、存储过程、级联等复杂的内容。以下是 SQL 映射文件的部分元素介绍元素描述cache该命名空间的缓存配置cache-ref引用其它命名空间的缓存配置resultMap描述如何从数据库结果集中加载对象,它是最复杂也是最强大的元素sql可被其它语句引用的可重用语句块select映射查询语句insert映射插入语句update映射更新语句。
2024-03-01 17:14:22
1336
原创 MyBatis 学习(二)之 第一个 MyBatis 案例
目录1 配置 MyBatis 方式1.1 XML 配置文件1.2 Java 注解配置1.3. Java API 配置2 在 MySQL 中创建一张表3 创建一个基于 Maven 的 JavaWeb 工程4 编写 User 实体类5 创建Mybatis全局配置文件6 编写一个 DAO 或 Mapper 接口7 编写 SQL 映射配置文件(重要)8 加载映射文件9 导入日志文件10 创建 MyBatisTest 测试类 最常见的方式是使用 XML 配置文件来配置 MyBatis。在 XML 配置文
2024-02-28 23:24:45
825
原创 MyBatis 学习(一)之 MyBatis 概述
MyBatis 是一个半自动化的 ORM (Object-Relational Mapping,对象关系映射)持久层框架,它允许开发者通过 XML 或注解将对象与数据库中的记录建立映射关系,同时提供了灵活的 SQL 编写和参数设置功能。JDBC 代码简化:MyBatis 能根据不同的条件动态生成 SQL 语句,使用它可以避免编写大量的 JDBC 代码,如手动设置参数和检索结果集。MyBatis 通过配置和映射机制自动处理这些底层细节,从而简化了数据库操作的代码量参数传递。
2024-02-28 16:29:28
1031
原创 SpringMVC 学习(十一)之数据校验
在实际的项目中,一般会有两种校验数据的方式:客户端校验和服务端校验客户端校验:这种校验一般是在前端页面使用 JS 代码进行校验,主要是验证输入数据的合法性,不合法的数据则没有必要再发送至服务端了。前端校验可以有效的提高用户体验,但是无法确保数据完整性,因为前端用户可以方便的拿到请求地址,然后直接发送请求,传递非法参数服务端校验:可以有效的保证数据安全与完整性,但是用户体验要差一点,所以客户端校验和服务端校验通常两者结合使用。
2024-02-28 10:52:55
2136
原创 SpringMVC 学习(十)之异常处理
在 SpringMVC中,异常处理器(Exception Handler)用于处理应用程序中发生的异常。SpringMVC 提供的异常处理主要有以下三种方式:使用 SpringMVC 提供的简单异常处理器 SimpleMappingExceptionResolver实现异常处理接口 HandlerExceptionResolver使用 @ExceptionHandler 注解实现异常处理。
2024-02-27 23:15:11
987
原创 SpringMVC 学习(九)之拦截器
1 拦截器介绍在 SpringMVC 中,拦截器 (Interceptor) 是一种用于拦截 HTTP 请求并在请求处理之前或之后执行自定义逻辑的组件。:在请求处理之前进行用户身份验证和授权:记录请求的相关信息,如请求路径、参数、处理时间等:捕获并处理请求处理过程中抛出的异常:统计请求的响应时间、吞吐量等性能指标:在请求处理之前或之后对请求或响应的数据进行转换或修改:在请求处理之前检查缓存,决定是否从缓存中获取数据从以上功能可以看出,拦截器和过滤器作用很相似,但它们存在一些区别。
2024-02-27 21:06:09
902
原创 SpringMVC 学习(八)之文件上传与下载
传统 Servlet 文件下载方式,需要在 HttpServletResponse response 中设置各种信息,而使用 SpringMVC 的 ResponseEntity 只需要将文件二进制主体、头信息以及状态码设置好即可进行文件下载,在易用性和简洁上更胜一筹。MultipartFile 封装了请求数据中的文件,此时这个文件存储在内存中或临时的磁盘文件中,需要将其转存到一个合适的位置,因为请求结束后临时存储将被清空。,这种编码方式会把文件域指定文件的内容也封装到请求参数中,不会对字符编码。
2024-02-27 11:08:36
1389
原创 SpringMVC 学习(七)之报文信息转换器 HttpMessageConverter
HttpMessageConverter 报文信息转换器,将请求报文(如JSON、XML、HTML等)转换为 Java 对象,或将 Java 对象转换为响应报文。HttpMessageConverter 接口定义了将 Java 对象转换为 HTTP 响应的报文信息和将 HTTP 请求中的报文信息转换为 Java 对象的方法。SpringMVC 提供了多个内置的 HttpMessageConverter 实现,以支持不同的数据格式和数据类型。
2024-02-26 18:57:19
1454
原创 SpringMVC 学习(六)之视图
在 SpringMVC 框架中,视图可以是一个 JSP 页面、HTML 文件、模板文件(如 Thymeleaf、FreeMarker 等)、JSON 响应、XML 响应或其他类型的内容。SpringMVC 中的视图负责渲染数据和将模型 Model 中的数据展示给用户。SpringMVC 提供了多种视图类型,包括 JSP 视图、Thymeleaf 视图、FreeMarker 视图、XSLT 视图等。
2024-02-25 22:58:30
1248
原创 SpringMVC 学习(五)之域对象
众所周知,JavaWeb 有四大域,分别是 Page 域 (PageContext)、Request 域、Session 域、Application 域 (ServletContext)。域对象都是 Map 对象,用于在同一范围内的不同组件之间传递和共享数据。这些域对象使得数据能够在不同的请求处理过程中被访问和修改,从而支持多种 Web 应用的数据交互需求。// 存储数据// 获取数据// 删除数据。
2024-02-25 17:12:37
1109
原创 SpringMVC 学习(四)之获取请求参数
1 通过 HttpServletRequest 获取请求参数2 通过控制器方法的形参获取请求参数3通过 POJO 获取请求参数(重点)
2024-02-25 12:48:24
1882
原创 Tomcat 学习之 Filter 过滤器
在 Tomcat 中,Filter 是一种用于拦截请求和响应的组件,可以在请求到达 Servlet 之前或响应离开 Servlet 之后对其进行处理。权限控制:可以使用 Filter 来检查请求的用户是否具有访问特定资源的权限日志记录:可以使用 Filter 来记录请求和响应的信息,以便进行监控和故障排除性能监控:可以使用 Filter 来测量请求的处理时间和响应时间,以便进行性能优化数据加密和解密:可以使用 Filter 来对请求和响应进行加密和解密,以保护敏感信息的安全。
2024-02-22 13:14:16
2849
1
原创 Tomcat 学习之 Servlet
互联网兴起之初,当时的 Sun 公司(后来被 Oracle 收购)已然看到了这次机遇,为了使 Java 进军 Web 编程领域,推出了 Applet 支持 Web 应用,但是效果并不如预想的那般美好,Applet 并没有给业界带来多大影响。之后,Sun 公司的大佬潜心专研,推出了 Servlet(Server Applet,全称 Java Servlet)实现动态网页。Tomcat 的前身为 Catalina,Catalina 是一个轻量级的 Servlet 容器,提供了运行 Servlet 的环境和服务。
2024-02-21 20:31:40
1523
原创 MySQL 基础知识(十)之 MySQL 架构
当 MySQL 接收到一个查询请求时,它首先会检查查询缓存中是否已经存在与该查询请求相同的查询结果。如果查询缓存中没有该查询结果,MySQL 会执行查询语句并将结果存储在查询缓存中,以便下次相同的查询可以直接从缓存中获取结果。我们一般不会使用查询缓存,因为一旦查询涉及的表发生改变,该缓存会失效,会被查询缓存清除。MySQL 执行器是 MySQL 服务器中的一个组件,它负责执行优化器生成的执行计划,并返回查询结果。,检查“解析树”中的元素是否在数据库中有对应的实体,并验证操作的合法性。《高性能MySQL》
2024-02-19 22:33:31
3487
2
原创 MySQL 基础知识(九)之视图
视图是一张并不存储数据的虚拟表,其本质是根据 SQL 语句动态查询数据库中的数据。数据库中只存放了视图的定义,通过 SQL 语句使用视图时,会根据视图的定义进行查询。简化代码:对于复杂的查询,通过视图可以不用写那么多代码增加数据的安全性:通过视图,用户只能对指定的数据进行操作查询性能不好:在很多场景下,对视图的查询无法使用基表(基表是创建视图时使用的表)的索引,需要对所有基表进行全表扫描后,将返回结果保存到临时表,再进行查询维护代价高:基表发生变化时,视图也要进行更改,这需要一定的维护成本。
2024-02-17 21:07:42
1755
原创 MySQL 基础知识(八)之用户权限管理
先从 user 表中的 Host、User、Password (MySQL 8.0 版本没有 Password,有 authentication_string)这 3 个字段中判断连接的 IP、用户名、密码是否存在,存在则通过验证。通过连接权限验证后,进行权限分配,按照 user、db、tables_priv、columns_priv 的顺序进行验证。设置相同的用户名,不同的访问地址(主机名),这样我们可以在不同的主机(网络地址)上登录账户连接数据。注意回收权限是回收已经授予的权限,不能回收没有的权限。
2024-02-16 16:27:29
3304
原创 MySQL 基础知识(六)之数据查询(二)
注:MySQL 8.0 版本提供了 hash join 连接算法,其他版本仍是 nested loop join 连接算法,尽量少用 join,不同时连接三张表。对外层循环的结果集进行分块,减少内层循环的次数,时间复杂度 O(n / m * n) ,其中 m 为分片数。上述代码中,表 goods 有 7 行数据,sales 有 4 行数据,通过 cross join 连接的后的表 有 7 * 4 行数据。用小结果集驱动大结果集,将筛选结果小的表首先连接,再去连接结果集比较大的表,即用小的表的取连接大的表。
2024-02-15 16:38:13
1788
原创 MySQL 基础知识(六)之数据查询(一)
的方式虽然看起来便捷,但实际上需要转换成全列名,效率低,可读性差。通过 as 可以对列名取别名,as 可以省略(列名和别名之间用空格隔开)周 (01-53) ,星期一是一周的第一天,与 %x 使用。通过 distinct 将查询结果的中的重复行去除。可以对列中的数据进行加 +、减 -、乘 *、除 /时间,12-小时(hh:mm:ss AM 或 PM)asc 表示升序,desc 表示降序,默认是升序。时间, 24-小时 (hh:mm:ss)月的天,数值(0-31)月,数值(00-12)
2024-02-14 18:55:59
1268
原创 MySQL 基础知识(五)之数据增删改
当要插入的数据为日期/时间类型时,如果插入数据的格式不为“%Y-%m-%d”,需要通过 str_to_date(str,fmt);delete 是 DML 语句,不会自动提交,即可以回滚,drop/truncate 都是 DDL 语句,执行后会自动提交,即不能回滚。通过 delete 进行删除,如果不加 where 条件则删除整张表的数据,但是只是删除数据,表依然存在。truncate 和 delete 只删除数据,不删除表结构, drop 则删除整个表(结构和数据)通过 update 更新数据,
2024-02-13 20:17:37
740
2
原创 MySQL 基础知识(四)之表操作
ENGINE 为存储引擎,AUTO_INCREMENT 为下一条插入数据的主键值,一般是最后一条数据的主键值 + 1,DEFAULT CHARSET 为默认字符集编码格式。改变列名,alter table 表名 change 旧列名 新列名 数据类型 约束。name 列设置为 unique not null,则该列名字不能重复,也不能为 NULL。修改表中列,alter table 表名 modify 列名 数据类型 [约束];sex 列设置为 default,只有不插入该列,才会填入默认值。
2024-02-13 17:03:19
859
原创 MySQL 基础知识(三)之数据库操作
重启数据库后,字符集变为之前的编码。不过,我的MySQL因为无法插入中文的问题改了MySQL的配置文件 : my.ini。改完后可以插入中文,但只能在命令行插入,无法通过 source 命令 通过导入 sql 文件插入中文。修改数据库 test 的字符集为 utf8mb4(用于大于4个字节字符,可用来存表情),创建 test 数据库,使用 show databases 查看。utf8 是 utf8mb3 的别名。使用 test 数据库。
2024-02-13 11:23:05
676
原创 MySQL 基础知识(二)之数据类型
二进制数,m 的范围从 1 ~ 64,存储数值范围从0~2^m-1。为精度(precision),表示该值的总长度,范围为1〜65。),表示小数点后面的长度,范围是0~30,且 D
2024-02-12 23:18:35
466
原创 MySQL 基础知识(一)之数据库和 SQL 概述
RDBMS 通常使用客户端/服务端这样的系统架构,通过客户端向服务器端发送 SQL 语句来实现数据库的读写操作,关系数据库采用被称为数据库表的二维表来管理数据,数据库表由表示数据项目的列(字段)和表示一条数据的行(记录)所组成,以记录为单位进行数据读写。用来确认或者取消对数据库的数据进行的变更。此外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。用来创建或者删除存储数据用的数据库以及数据库中的表等对象。SQL 是用来操作关系数据库的语言。
2024-02-12 21:04:14
1106
原创 Spring 用法学习总结(四)之 JdbcTemplate 连接数据库
Dao 是数据库操作,其中 BookDao 为接口并且声明了对数据库操作的方法,BookDaoIml 类实现了 BookDao 接口。BookDaoIml 类定义了 CRUD 方法,通过 JdbcTemplate 模块可以对数据库中的一条或多条数据进行操作。如果仍报错则将 com.mysql.jdbc.Driver 改为 com.mysql.cj.jdbc.Driver。Test 类进行测试,通过 Service 类调用 BookDao 接口中的方法。无法插入中文,请修改数据库编码为 utf-8。
2024-02-12 20:17:49
937
原创 Spring 用法学习总结(三)之 AOP
bean的生命周期主要为bean实例化、bean属性赋值、bean初始化、销毁bean,其中在实例化和初始化前后都使用后置处理器方法,而InstantiationAwareBeanPostProcessor 继承了BeanPostProcessor。切面代码可以利用这些点插入到应用的正常流程之中,并添加新的行为。切面是通知和切点的结合。通知和切点共同定义了切面的全部内容——它是什么,在何时和何处完成其功能。切点定义了何处使用切面。明确的类和方法名称,或利用正则表达式定义所匹配的类和方法名称来指定这些切点。
2024-02-11 22:00:46
1175
原创 Spring 用法学习总结(二)之基于注解注入属性
有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字(id属性值),而type属性则解析为bean的类型(class属性值)。如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。注解是代码的特殊标记,可以简化xml配置,格式:@注解名称(属性名称=属性值),可以作用在类、方法、属性上。创建Card类,使用@Bean注解创建User对象,name默认是类名(首字母小写)
2024-02-08 22:11:05
697
原创 Spring 用法学习总结(一)之基于 XML 注入属性
Spring是轻量级的开源的JavaEE框架,提供了多个模块Spring可以解决企业应用开发的复杂性Spring有两个核心部分:IOC和Aop(1)IOC:控制反转,把创建对象过程交给Spring进行管理(2)Aop:面向切面,不修改源代码进行功能增强Spring特点(1)方便解耦,简化开发(2)Aop编程支持(3)方便程序测试(4)方便和其他框架进行整合(5)方便进行事务操作(6)降低API开发难度。
2024-02-07 22:05:58
1572
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人