《动手学深度学习》Pytorch 版学习笔记一:从预备知识到现代卷积神经网络
前言笔者有一定的机器学习和深度学习理论基础,对 Pytorch 的实战还不够熟悉,打算入职前专项突击一下
本文内容为笔者学习《动手学深度学习》一书的学习笔记
主要记录了代码的实现和实现过程遇到的问题,不完全包括其理论知识
引用:
《动手学深度学习》
一、预备知识1. 数据操作1.1 入门创建行向量
12# 创建行向量x = torch.arange(12)
1tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
报错:module ‘numpy’ has no attribute ‘array’
解决方案:
numpy 版本过高,原版本为 1.21.5,使用以下命令安装 1.21.0 的 numpy
pip uninstall numpy
pip install numpy==1.21
张量的基本操作
123456# 元素的数量print(x.numel())# 张量的形状print(x.shape)# 更改形状print(x.reshape(3, 4))
1234512torch.Size([12])tensor([[ ...
腾讯 IEG 游戏前沿技术 二面复盘
前言二面 40 分钟,面的稀烂,唯一可以圈点的就是一道 hard 写出来了。问了很多基础知识,没有形成很好的引导链到自己准备的项目经历上
面试过程自我介绍巴拉巴拉同一面。。。这次没说做了运维相关,但还是提了自己了解机器学习经典算法。强调了在 xxx 实习的主要产出,包括分布式定时任务解决方案,以及对已有项目的接口调整和性能优化。
问:讲一下做了什么优化答:主要是在后台管理项目和数据分析平台项目中,出现了由于大数据量导致的性能问题。我也根据 SQL 慢查询优化的知识还有数据结构的知识进行了性能的优化
问:能具体讲讲吗
答:通过 explain 看查询的过程,尽量利用最左前缀法则,让查询条件走索引。然后看联表的时候,是不是小表驱动大表,有没有使用谓词下推,尽量不要使用 select *,尽量让索引覆盖返回字段。如果有深度分页的情况。。。(被打断)
问:可以讲有几种类型的优化吗
答:一种就是通过索引去优化,一种是通过联表的方式,还有就是分页的优化,以及分组优化,其实也是让分组条件走索引,也算是索引相关的优化
问:MySQL 索引原理答:索引使用的是 B树 和 B+树,我们知道全表扫描的话消耗 ...
腾讯 IEG 游戏前沿技术 一面复盘
前言投了个实习内推后台开发,本来要电话先交流的那天直接走流程下午面试了,对面两人,面了有一个小时,游戏本的构思续航忘记插电了最后还掉线了一下,趁着还记得面试内容复盘一下
自我介绍一下答:
您好,我是深大26届 xxx 的 xxx,对贵公司后台开发的岗位很感兴趣。现在在 xxx 做后台开发实习生,负责项目的开发和运维相关,还有一部分系统设计相关的的工作,之前在学校中也做过 web 开发相关的项目。
了解到贵公司正在招聘后台开发,做与 AI 相关的交叉。考虑到自己在 xx,对经典机器学习算法还有其相关的论文也比较了解,加上自己在后台开发相关生态的实践较多,因此认为本人跟贵公司的岗位是比较契合的。
我听学长的介绍了解到贵公司会做分布式训练的内容,这块我也是比较感兴趣的。觉得能够将自己在后台开发中对分布式服务的实践与课程中机器学习的内容还有模型的训练的知识相结合,会是很美妙的事情。
很荣幸能有今天交流的机会,希望我们沟通愉快
问实习SQL 优化问:实习干了什么答:会对已有的项目做一些修改,业务需求变动的时候对接口做修改。在开发过程中也出现过因为大数据量导致的性能问题,自己有对 SQL 优化慢查 ...
EnableScheduling 和 Scheduled 实现定时任务的任务延期问题
前言在复盘 ieg 一面看到定时任务阻塞的问题时,研究了下 @EnableScheduling 的源码,觉得可以单开一篇文章讲一讲
本文主要讲述了使用 @EnableScheduling 可能出现的线程阻塞导致定时任务延期的问题,也顺便解释了动态定时任务源码上的实现
引用文章:
@Schedule定时任务+分布式环境:@Schedule定时任务+分布式环境,这些坑你一定得注意!!! (qq.com)
java 中的线程池参数:java中四种线程池及poolSize、corePoolSize、maximumPoolSize_maximum-pool-size-CSDN博客
线程池的拒绝策略:线程池的RejectedExecutionHandler(拒绝策略)-CSDN博客
Java 中实现定时任务:Java中实现定时任务,有多少种解决方案?好久没更新博客了,最近上班做了点小东西,总结复盘一下。主要介绍了定时任务的三种 - 掘金 (juejin.cn)
线程阻塞问题问题根源Java中 使用 Springboot 自带的定时任务 @EnableScheduling 和 @Scheduled ...
【设计模式】UML类图和六大设计原则
前言在实践中经常看到工厂模式、观察者模式等字眼,渐觉设计模式的重要性,于是开刷设计模式。
本文讲述了UML类图以及设计模式的六大原则
参考资料:
课程视频:黑马程序员Java设计模式
一、UML类图1. 类和接口的表示方式
如图所示,在 UML 类图中,第一栏为类的名称,第二栏为类的属性(field),第三栏为类的方法(method)
属性/方法之前的 - + # 表示访问权限:- 表示 private+ 表示 public# 表示 protected
属性的完整表示方式是: 可见性 名称 :类型 [= 缺省值]方法的完整表示方式是: 可见性 名称(参数列表)[:返回类型]
接口图 和 类图 的主要区别是顶端有 \<\>
2. 关联和双向关联关联关系表示存在对象的引用,如 A 类中某一个成员变量的类型为 B 类,那么 A 类依赖于 B 类
关联关系使用 实心箭头 表示
双向关联使用 横线 表示
3. 组合和聚合组合 和 聚合 都是关联的特例,强调整体和部分的关系,在转换为关系模型时跟关联没有区别,但是在UML 中的描述存在语义上的区别。
组合组合 中的整体和部分具有强依赖,整 ...
Filebeat安装部署及入门应用
前言后续开发项目要用到 Filebeat 对日志做收集和处理。本文介绍了 ELK 技术中的 Filebeat,用于轻量级的日志收集和分析
参考资料:
视频教程:Elastic Stack(ELK)从入门到实践
官方文档:Filebeat overview | Filebeat Reference [8.14] | Elastic
一、安装部署环境:
12root@Andrew:~# cat /proc/versionLinux version 5.15.153.1-microsoft-standard-WSL2 (root@941d701f84f1) (gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37) #1 SMP Fri Mar 29 23:14:13 UTC 2024
Linux环境下安装命令:
123curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.14.3-linux-x86_64.tar.gztar xzvf filebeat-8.1 ...
Java中实现定时任务,有多少种解决方案?
前言好久没更新博客了,最近上班做了点小东西,总结复盘一下
参考资料:
SpringBoot 设置动态定时任务,千万别再写死了~ (qq.com)
3千字带你搞懂XXL-JOB任务调度平台-阿里云开发者社区 (aliyun.com)
一、定时任务1. 引入依赖创建Springboot应用,引入相应依赖:
1234567891011121314151617181920212223<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>spring-boot-starter-logging</artifactId> ...
机器学习笔记——SVM丝滑推导及代码实现,从硬间隔到软间隔再到核函数
前言开始搓延期了一百年的机器学习实验,把SVM推导过程从定义到求解都刷了一遍,包括推导优化目标、提出对偶问题、利用KKT条件得到原问题的解以及SMO算法等。
注意:本文在某些地方比如KKT条件和SMO算法处不提供证明过程(太麻烦了喵),而是直接使用其结论,感兴趣的读者可以查阅参考资料
参考资料:
推导过程学习视频:(系列六) 支持向量机1-硬间隔SVM-模型定义_哔哩哔哩_bilibili
拉格朗日对偶性的条件:拉格朗日对偶性详解(手推笔记)-CSDN博客
从几何角度理解KKT条件和对偶关系:机器学习笔记(8)-对偶关系和KKT条件 - Epir - 博客园 (cnblogs.com)‘
代码参考:统计学习:线性可分支持向量机(Cvxpy实现) - orion-orion - 博客园 (cnblogs.com)
一、优化问题当一个分类问题线性可分时,我们希望找到一个最优的超平面将其划分,这个最优的超平面需要满足以下性质:
超平面 和 距超平面最近的样本点 之间的间隔应该尽可能大
举一个简单的例子:
当这是一个二分类问题,且样本点特征数为2时(点可以表示在二维平面),该超平面是一条一维 ...
【机器学习论文阅读笔记】Robust Recovery of Subspace Structures by Low-Rank Representation
前言终于要轮到自己汇报了好崩溃。。盯着论文准备开始做汇报ppt感觉一头乱麻,决定还是写博客理清思路再说吧
参考资料:
论文原文:arxiv.org/pdf/1010.2955
RPCA参考文章:RPCA - 知乎 (zhihu.com)
谱聚类参考文章:谱聚类(spectral clustering)原理总结 - 刘建平Pinard - 博客园 (cnblogs.com)
一、问题描述该篇论文提出了一种名为LRR(Low-Rank Representation)的目标函数,为了解决以下问题:
给定一组从多个子空间的并集中近似抽取的数据样本(向量),我们的目标是将样本聚类到它们各自的子空间中,并去除可能的异常值。
Given a set of data samples (vectors) approximately drawn from a union of multiple subspaces, our goal is to cluster the samples into their respective subspaces and remove possible outliers ...
【SZU计算机网络实验】从rdt到GBN,这实验居然实现了TCP的可靠数据传输机制?
前言一个实验六个任务,实验文档一划划不到底。。看来老师们是真下功夫了啊
本文主要展示了作者在完成SZU计算机网络实验3的思路及过程,实验主要包括:
理解rdt2.1
实现rdt2.2
实现rdt3.0
实现回退N步(GBN)机制
实现面向无连接的可靠传输机制(GBN)
进行量化分析
文中出现的状态机演示图均基于mermaid。在本文中,过渡文字中第一行表示事件,第二行之后表示动作
参考资料:
实验文档:计算机网络课程综合实验平台 (snrc.site)
一、理解rdt2.10. 理解rdt1.0和rdt2.0在理解rdt2.1之前,我们需要先了解rdt2.1出现的背景,才能知道其解决的问题
rdt全称reliable data transfer,即可靠数据传输
由于网络层是不可靠传输,而位于网络层之上的传输层中的TCP,试图为上层提供可靠的传输
1) rdt1.0rdt1.0作为第一代的rdt模型,它假设底层信道(网络层及其以下层)是可靠的,即传输层的这一端到另一端之间,它们都是按序到达,且不会出现数据的损坏和丢包
因而rdt1.0的发送端和接收端的状态机的表示如下
发送端
s ...