- 博客(47)
- 资源 (7)
- 收藏
- 关注
原创 0x01 设计模式之设计原则
设计模式是软件开发过程中一些常见问题的典型,而非具体的解决步骤(算法),可以理解为软件开发的套路(通常是面向对象编程的软件设计模式)。
2022-12-13 23:04:51 350 1
原创 跨模态神经搜索实践VCED 基于Streamlit实现前端页面设计和逻辑
讲解Streamlit快速入门、如何在页面展示变量,展示变量的形式、Streamlit的组件,布局、缓存、多页面;基于Streamlit和VCED需求实现页面设计和对应的页面逻辑
2022-11-20 22:59:21 1363
原创 跨模态神经搜索实践VCED 环境准备
安装WSL2、Ubuntu、VSCode、安装miniconda、docker desktop、docker换源、ubuntu换源等
2022-11-14 22:45:27 875
原创 PyTorch的生态和模型部署
主要讲解了PyTorch的生态(torchvision, torchvideo, torchtext,分别对应图片、视频和文本),及其相关使用,然后介绍了使用ONNX完成PyTorch的模型部署,其流程为转换torch模型为ONNX格式、验证模型是否可用、使用ONNX Runtime进行模型推理。
2022-09-25 23:48:19 2194
原创 PyTorch可视化
使用PyTorch可视化网络结构(torchinfo)、以CNN为例讲解了卷积核可视化、特征图可视化、CNN CAM可视化(pytorch-grad-cam),同时以FlashTorch为例讲解了快速使用CNN的三种可视化,最后讲解了TensorBoard可视化模型的训练过程,包括模型结构、图像、连续变量、参数分布的可视化
2022-09-23 23:36:16 1221
原创 PyTorch模型进阶技巧
讲解PyTorch自定义损失函数(基于函数、基于类)、动态调整学习率(PyTorch官方scheduler,自定义调整策略)、模型预训练及模型微调(基于torchvision.models, timm)、半精度训练(使用float16)、数据增强(imgaug)、使用argparse设置超参数
2022-09-21 23:49:40 530
原创 PyTorch模型定义和相关使用
主要介绍PyTorch模型定义的方式(Sequential,ModuleList、ModuleDict)及它们的优缺点,然后介绍如何基于模块(模型块,通常是事先定义好的多个层组成的部分)快速搭建大型复杂网络,接着介绍如何修改已有的模型(修改模型输出,添加额外输入,添加额外输出),最后介绍模型的保存和读取(结合单卡和多卡介绍)
2022-09-18 22:35:49 943
原创 PyTorch的组件和实战
深度学习和机器学习的流程及对比,深度学习的特点,Pytorch中的基本配置、数据读入、模型构建、模型初始化、损失函数、训练和评估、可视化和Pytorch优化器,最后结合FashionMNIST时装分类进行实战
2022-09-16 22:00:22 381
原创 PyTorch的安装及基本知识
PyTorch的介绍、安装、配合Anaconda、Jupyter使用,Tensor的相关操作、Autograd的原理和计算示例、GPU并行计算的相关操作和常见的并行方法
2022-09-13 15:21:14 747 2
原创 计算之魂 关于排序的讨论
选择排序、插入排序、堆排序、桶排序、快速排序的算法分析及思考,删除算法勿庸官的优化接着结合混合排序,讲解了Timsort(python、java、android内置)和内省排序(stl库)最后分析了排序算法时间复杂度的上界,完成了计算之魂的1.4思考题...
2022-08-21 16:04:58 409
原创 动手学数据分析 数据建模和模型评估
在对数据进行处理和初步的可视化分析之后,我们就可以使用数据来获取想要的信息。而对数据的分析第一步就是建模,建模完成之后还需要评估我们的模型是否可靠。这里使用的建模库是sklearn,其中包含机器学习的很多算法,对应的模型算法选择路径可以参考下图:首先需要将数据集划分为训练集和测试集,这里使用的是sklearn.model_selection.train_test_split方法,可以通过jupyter的查看方法的文档。这里需要注意在切割数据集默认是使用随机选取,需要根据实际情况进行判定。在sklearn中,
2022-06-24 00:10:21 611
原创 动手学数据分析 数据可视化
通常数据可视化,可以帮助我们寻找一些异常值(过大或过小的值)、进行数据转换(数据标准化)、判断可使用的模型等。这里主要介绍matplotlib和seaborn导入:import matplotlib.pyplot as plt在jupyter notebook中使用需要使用%matplotlib inline,在IPython中使用%matplotlibmatplotlib的图像都是基于Figure对象,但是我们的图像是基于subplot进行绘制的,使用fig.add_subplot对象返回的是AxesSu
2022-06-21 01:11:11 86
原创 动手学数据分析 数据重构
主要是针对数据进行重构和分析,其中包括数据的合并、连接、数据分组和聚合运算对应方法:concat、join、append、merge、groupby、sum、max、mean等
2022-06-19 01:41:14 363
原创 动手学数据分析 数据清洗及特征处理
通过使用pandas对数据进行数据清洗,其中包括数据的缺失值处理(NA)和重复值处理;接着使用pandas对数据进行特征处理,主要使用离散化/文本变量转换/字符串操作的相关方法
2022-06-17 00:23:19 122
原创 李宏毅机器学习 卷积神经网络
卷积神经网络介绍卷积神经网络一般用来针对影像进行处理。为什么需要卷积神经网络(Convolutional Neural Networks, CNN)呢,因为对于任意一个模型,如果使用全连接前馈网络,也就是使用深度神经网络DNN,那么我们会需要大量的参数。而使用CNN,可以简化neural network的架构,把某些weight用不上的,一开始就过滤掉。整体来讲,就是利用power-knowledge把原来fully connect layer中一些参数拿掉就成了CNN。small region
2022-05-29 00:10:58 696
原创 李宏毅机器学习 神经网络设计的技巧
神经网络设计的技巧局部极小值与鞍点介绍1.local minimalocal minima没有办法可以解决2.saddle pointcritical point:gradient为0的点鞍点saddle point:gradient为0的点,但不是local minima的地方L(θ)L(\theta)L(θ)在θ=θ′\theta = \theta'θ=θ′附近的函数值可以表示如下(泰勒展开),其中的ggg为梯度(一次微分),H(Hessian矩阵)是二次微分:L(θ)≈L(θ′)+(
2022-05-26 00:04:18 201
原创 李宏毅机器学习 深度学习介绍
深度学习深度学习的发展趋势回顾一下deep learning的历史:1958: Perceptron (linear model)1969: Perceptron has limitation1980s: Multi-layer perceptronDo not have significant difference from DNN today1986: BackpropagationUsually more than 3 hidden layers is not helpful
2022-05-22 23:36:59 159
原创 李宏毅机器学习 误差和梯度下降
误差和梯度下降误差一次模型的方差就比较小的,也就是是比较集中,离散程度较小。而5次模型的方差就比较大,同理散布比较广,离散程度较大。所以用比较简单的模型,方差是比较小的(就像射击的时候每次的时候,每次射击的设置都集中在一个比较小的区域内)。如果用了复杂的模型,方差就很大,散布比较开。这也是因为简单的模型受到不同训练集的影响是比较小的。这里没办法知道真正的 \hat{f}f^,所以假设图中的那条黑色曲线为真正的 \hat{f}f^结果可视化,一次平均的 \bar{f}没有5
2022-05-20 22:21:24 144
原创 李宏毅机器学习 回归Regression
回归(Regression)回归的应用:股市预测:Stock Market Forecast,输入前面的股市行情,输出明天的结果自动驾驶:Self-driving car,输入一些场景,输出方向盘角度推荐系统:Recommendation,使用者A购买商品B的可能性预测宝可梦的攻击值:Estimating the Combat Power(CP) of a pokemon after evolution,输入宝可梦的所有属性(进化前的CP值、物种Bulbasaur、血量HP、重量Weight、高
2022-05-18 21:49:40 220
原创 机器学习西瓜书&南瓜书 支持向量机
机器学习西瓜书&南瓜书 支持向量机1. 间隔与支持向量给定训练样本集D=(x1,y1),(x2,y2),...,(xm,ym),yi∈−1,+1D={(\boldsymbol{x}_1, y_1), (\boldsymbol{x}_2, y_2), ..., (\boldsymbol{x}_m, y_m)}, y_i \in {-1, +1}D=(x1,y1),(x2,y2),...,(xm,ym),yi∈−1,+1,分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平
2022-03-31 22:53:00 1395
原创 机器学习西瓜书&南瓜书 神经网络
机器学习西瓜书&南瓜书 神经网络1. 神经元模型神经网络:由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实事件物体所做出的交互反应。神经网络最基本的成分是神经元neuron模型,即定义中的“简单单元”,接下来以M-P神经元模型为例讲解:神经元接收来自n个其他神经元传递的输入信号,这些输入信号通过带权重的连接(connection)进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”(activation function,也称响应
2022-03-27 22:41:39 1237
原创 机器学习西瓜书&南瓜书 决策树
机器学习西瓜书&南瓜书 决策树1. 基本流程决策树是一类常见的机器学习方法。以二分类为例,希望从给定训练集学得一个模型用以对新示例进行分类。决策树在决策过程中提出的每个判定问题都是对某个属性的“测试”,每个测试的结果或是导出最终结论,或是导出进一步的判定问题,其考虑范围是在上次决策结果的限定范围之内。决策树学习的目的是为了产生一颗泛化能力强,即处理未见示例能力强的决策树,及基本流程遵循简单且直观的“分而治之”策略,如下图:在决策树基本算法中,有三种情况会导致递归返回:当前结点包含的样本
2022-03-24 23:43:17 948
原创 机器学习西瓜书&南瓜书 线性模型
机器学习西瓜书&南瓜书 线性模型1. 基本形式给定由d个属性描述的示例x=(x1;x2;...xd)x=(x_1;x_2;...x_d)x=(x1;x2;...xd),其中xix_ixi是x在第i个属性上的取值,线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即:f(x)=ω1x1+ω2x2+...+ωdxd+bf(x) = \omega_1x_1 + \omega_2x_2 + ... + \omega_dx_d + bf(x)=ω1x1+
2022-03-21 23:17:49 1365
原创 机器学习西瓜书&南瓜书 绪论&模型评估与选择
机器学习西瓜书&南瓜书 绪论&模型评估与选择绪论基本概念计算机科学是研究关于“算法”的学问,机器学习是研究关于“学习算法”的学问,在计算机上从数据中产生“模型”的算法。数据集:对应数据的集合。示例(instance):数据集中的每条记录都成为实例或样本(sample),如果把示例中的每个属性都是单独的左边,可以把一个示例称为一个特征向量(feature vector)属性(attribute):事件或对象在某方便的表现或性质,也称特征(feature)属性值(attribute
2022-03-15 22:16:12 1301
原创 Leetcode刷题12-哈希表
哈希表基础知识1.简介哈希表:也叫散列表。是根据关键字和值(Key-Value)直接进行访问的数据结构。也就是说,它通过关键字key和一个映射函数Hash(key)计算出对应的值value,然后把键值对映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做哈希函数(散列函数),用于存放记录的数组叫做哈希表(散列表)。哈希表的关键思想是使用哈希函数,将键key和值value映射到对应表的某个区块中。可以将算法思想分为两个部分:向哈希表中插入一个关键字:哈希函数决定该关键字的对应值应该存放
2022-03-08 21:29:48 180
原创 Leetcode刷题11-分治
分治基础知识分治也是一种编程思想,而不是具体的算法,因此这里介绍一些使用了分治思想的算法。归并排序题目解析将有序数组转换为二叉搜索树1.题目描述题目链接2.解析思路及代码分治的思想:将数组分为两部分,中间节点是根节点,根节点的左子树和右子树继续使用函数递归构建。 public TreeNode sortedArrayToBST(int[] nums) { return helper(nums, 0, nums.length - 1); } p
2022-03-06 21:39:49 7518
原创 Leetcode刷题10-动态规划
动态规划基础知识动态规划是一种思想,因此这里主要讲解动态规划相关的习题及应用。区间调度问题1.无权区间调度问题对于该问题,{b, e, h}是最大互相兼容的任务集合,这里需要使用贪心算法。贪心算法:总是做出当前最优的选择,并不总能得到最优解,但是它是最简单最容易实现的算法。无权区间调度问题贪心算法:先将任务以某种顺序排序,再按顺序挑选互相兼容的任务。对于该问题,需要按照结束时间排序,时间复杂度是O(nlogn)2.带权区间调度问题动态规划四步骤:确定状态:先按任务结束时间排序,定
2022-03-05 22:24:21 1028
原创 Leetcode刷题09-排序
冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序、计数排序、希尔排序、桶排序、基数排序基本思想和原理、代码实现、相关习题
2022-03-03 17:17:17 9019
原创 Leetcode刷题08-搜索
搜索基础知识1.简介#mermaid-svg-JkIDWhg4euSXqe8b {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-JkIDWhg4euSXqe8b .error-icon{fill:#552222;}#mermaid-svg-JkIDWhg4euSXqe8b .error-text{fill:#552222;stroke:#552222;}#mermai
2022-02-28 18:19:08 216
原创 Leetcode刷题07-双指针
双指针基础知识1.介绍双指针是一种思想或一种技巧,并不是特别具体的算法。具体就是用两个变量动态存储两个结点,方便我们进行一些操作。通常用在线性的数据结构中。特别是链表类的题目,经常需要用到两个或多个指针配合来记忆链表上的节点,完成某些操作。2.分类常见的双指针方式:同速指针:链表上两个指针,一个先出发,另一个后出发并以相同的速度跟随。求链表的逆:通过临时指针让双指针同步前行求链表倒数第k个元素:先让第一个指针前进k步,然后两个指针同样的速度前进,第一个指针走到尽头,则后面的指针为倒数
2022-02-26 20:35:46 465
第七届蓝桥杯大赛个人赛省赛(软件类)真题.zip
2020-05-23
Windows相关项目以及WindowsAPI
2020-05-23
模拟DOS环境的Dir命令
2020-05-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人