- 博客(64)
- 收藏
- 关注
原创 有 n 个整数,使其前面各数顺序向后移 m 个位置,最后m个数变成最前面的 m 个数。
【代码】有 n 个整数,使其前面各数顺序向后移 m 个位置,最后m个数变成最前面的 m 个数。
2024-05-21 23:20:38 325 1
原创 CNN实现对手写字体的迭代
下面创建卷积模型来识别MNIST手写数据集。我们所创建的卷积模型先试用两个卷积层和两个池化层,然后将最后一个池化的输出展平为二维数据形式连接到全连接层,最后是输出层,中间的每一层都是用ReLU函数激活,输出层的输出张量长度为10,与类别数一致。从上述代码中可以看到,train_dl返回的图片数据是四维的,4个维度分别代表批次、通道数、高度和宽度(batch,channel,height,width),这正是PyTorch下卷积模型所需要的图片输入格式。
2023-12-27 17:16:08 837
原创 CNN中卷积层和池化层
上述代码中生成了批次图像,形状为(64,3,256,256),经过最大池化运算后,输出形状为(64,3,128,128),可以看到图像的高和宽均变为原来的一半,这是因为当调用torch.max_pool2d()方法应用最大池化时,设置了kernel_size为(2,2),这表示池化核将从2×2大小的输入中选择最大的值作为输出,这样的效果就是高和宽均缩小为原来的一半。在PyTorch中使用图片的默认形状为(channel,height,width)
2023-12-27 14:43:19 1157
原创 链表对象的封装
前面我自己写了一个对链表对象的封装,现在看来,确实还得是大佬的封装思路更加完善__init__方法是Python中的一个特殊方法,用于初始化一个新对象。当一个类的实例被创建时,__init__方法会被自动调用,用来对实例的属性进行初始化。这个方法可以接受参数,用来为实例的属性赋初值。通过__init__方法,可以确保实例在创建时具有必要的属性值,从而使得实例能够在被创建后立即可用。
2023-12-20 11:39:41 389
原创 深度学习中常见的激活函数
我们在前面了解到了线性回归模型,其实我们可以把线性回归看成一个单个的神经元,它实际上就完成了两个步骤1.对输入的特征的加权求和2.将结果通过传递函数(或者激活函数)输出这里我们提到了传递函数(或者激活函数),我们从线性回归的模型中可以看出,在回归问题上,输出并没有做激活,仅仅是直接输出单个神将元所完成的任务就是对所有输入的特征乘以权重(w)、加上偏置(b)。
2023-12-18 16:22:06 522
原创 python之双链表
这里讲解一个双链表节点添加的例子,我们看到10,15,20这三个点的位置,其中原本是10和20相互连接,首先,我们要先将15的next指向20,因为,如果我们现将10的next指向15的话,那20的地址就会消失,这要就会导致我们的数据丢失,所以要先连接15和20,然后就是把20的prior(前驱)指向15,最后再是15的prior(前驱)指向10,10的next指向15,这样我们就完成插入的程序了。
2023-12-18 11:04:39 634
原创 MNIST内置手写数字数据集的实现
首先单个样本训练有一个很大的缺点,就是损失和梯度会受到单个样本的影响,如果样本分布不均匀,或者有错误标注样本,则会引起梯度的巨大震荡,从而导致模型训练效果很差。为了克服上述方法的缺点,一般采用的是一种折中手段进行损失函数计算:即把数据分为若干个小的批次,按批次来更新参数,这样,一个批次中的一组数据共同决定了本次梯度的方向,大大降低了参数更新时的梯度方差,下降起来更加稳定,减少了随机性,与单样本训练相比,小批次训练可利用矩阵操作进行有效的梯度计算,计算量也不是很大,对计算机内存的要求也不高。
2023-12-17 17:47:16 1229
原创 使用python实现链表
然后定义了一个对Node对象进行操作的一个方法类,其中包括封装好的创建链表中的头插法,尾插法,依次打印链表数据,插入结点数据,和删除加点数据。如果有什么看不懂的可以直接私信我哦!首先我们定义了一个Node对象,其接下来就是我们所有创建链表的结点对象。
2023-12-17 15:18:28 472
原创 torch中张量与数据类型的介绍
PyTorch最基本的操作对象是张量,它表示一个多维数组,类似NumPy的数组,但是前者可以在GPU上加速计算。
2023-12-17 15:13:05 1389
原创 用栈解决迷宫问题
具体来说,使用栈的思想是从起点开始,将起点入栈,然后不断从栈中弹出位置进行移动并判断是否到达终点,如果没有到达终点则继续将可移动的位置入栈,直到栈为空或者找到了终点位置。当无法继续移动时,回溯到上一个节点,继续尝试其他方向,直到找到一条通往终点的路径或者所有可能的路径都被探索完毕。使用栈来解决迷宫问题的思想是通过深度优先搜索算法来探索迷宫中的路径。栈的特点是后进先出,这正好符合深度优先搜索的思想,即先探索一个方向直到无法继续为止,然后回溯到上一个节点,再探索其他方向。
2023-12-14 14:04:02 506
原创 python中else的细节
在循环语句(for、while)中,else 用于指定在循环正常结束(没有被 break 中断)时执行的代码块。首先我们都知道else可以和if共同使用,如果if条件没有执行,就会去执行else语句。
2023-12-14 11:55:26 495
原创 python冒泡排序
其实冒泡排序就是比较相邻的两个数字的大小,然后大的数字排在小的数字的后面,我们依次比较,第一轮比较完成,最大的数字一定是排在我们整个列表的最后面,然后最后的一个数字,就不用纳入我们比较的范畴里面了,经过几轮后,所以的数字都会成一个有序的形状了。大家可以把我们所有的需要排列的数字想象成一个水中的气泡,大的数字想象成大气泡,小的数字想象成小气泡。
2023-12-13 00:04:36 476
原创 使用torch解决线性回归问题
因为当前模型是一个简单的线性回归模型,只有w和b两个参数,在__init__()方法中,使用nn.Linear()方法初始化一个线性连接层,nn.Linear有两个参数,即in_features和out_features,分别代表输入和输出维度的大小,根据X和Y的size()方法,我们可以输入和输出的维度大小都为1.这里的模型就是一个最简单的线性层,也就是所谓的一个线性函数,只有w和b两个参数,接下来是我们定义计算损失函数,并且根据损失值进行梯度优化,优化模型参数。
2023-12-11 23:39:31 424
原创 处理无线debug问题
clearInterval()中传入的参数为setInterval()返回的id值,传入id值能够关闭定时任务。关闭BreakPoint(不建议使用)#这里就是js中的定时块的代码。js代码中有debugger。开发者工具是打开状态。
2023-11-22 12:04:13 325
原创 爬虫的http和https基础
优先使用不认证,简单暴力,还有效运行或部署爬虫时,记得同步pyopenssl和cryptography操作系统越新,越不容易碰到SSL错误。
2023-11-21 16:41:35 1591 1
原创 网络编程基础上
简单来说,网络就是一种辅助双方或者多方连接在一起的工具。IP是整个TCP/IP协议族的核心,也是构成互联网的基础IP 地址就是标识网络中设备的一个地址。通过IP地址能够找到网络中某台设备。
2023-10-30 17:01:56 111
原创 pandas数据计算
稀疏数据,指的是在数据库或者数据集中存在大量缺失数据或者空值,我们把这样的数据集称为稀疏数据集。稀疏数据不是无效数据,只不过是信息不全而已,只要通过适当的方法就可以“变废为宝”。稀疏数据的来源与产生原因有很多种由于调查不当产生的稀疏数据;由于天然限制产生的稀疏数据;文本挖掘中产生的稀疏数据。
2023-09-25 16:45:07 775
原创 认识pandas
arr_str = np.array(['张三', '李四', '王五', '赵六'])# 自定义索引标签(即显示索引)代码的运行结果为:1 张三2 李四3 王五4 赵六。
2023-09-20 16:57:54 1315
原创 numpy与线性代数
对输入数组执行排序,并返回一个数组副本# a:要排序的数组;# axis:沿着指定轴进行排序# kind:默认为 quicksort(快速排序);# order:若数组设置了字段,则 order 表示要排序的字段。同样的在二维数组中,我们设置坐标轴,默认0为垂直方向,1为水平方向进行排序。
2023-09-19 15:40:22 88
原创 Numpy的元素操作
在使用insert添加元素时,添加的元素只能有两种情况,要不就是添加一个元素,要不添加一个数组,数组中的元素数量,一定是和列数或者行数是相等的情况,才可以添加,否则就会报错。当数组元素的数据类型为整型(int)时,对于绝对值大于 1 的元素,返回值为 0,而当数组中包含 0 元素时,返回值将出现 overflow(inf) 溢出提示。# axis:默认为 None,返回的是一维数组;((1-3)**2+(2-3)**2+(3-3)**2+(4-3)**2+(5-3)**2)/5=2,方差为2。
2023-09-17 21:35:25 376
原创 NumPy相关数组操作
NumPy 中包含了一些处理数组的常用方法,大致可分为以下几类:数组变维操作数组转置操作修改数组维度操作连接与分割数组操作。
2023-09-14 10:41:35 75
原创 Numpy进阶一
在 NumPy 中,如果想要访问,或修改数组中的元素,您可以采用索引或切片的方式,比如使用从 0 开始的索引依次访问数组中的元素,这与 Python 的 list 列表是相同的。NumPy 提供了多种类型的索引方式,常用方式有两种:基本切片与高级索引。
2023-09-13 12:39:18 62
原创 数据分析之numpy基础
数组的形状指的是多维数组的行数和列数。shape属性的返回值一个有数据维度构成的元组,比如2行3列的二维数组可以表示为(2,3),该属性可以用来调整数组维度的大小。所谓区间数组,是指数组元素的取值位于某个范围内,并且数组元素之间可能会呈现某种规律,比如等比数列、递增、递减等。numpy.empty() 创建未初始化的数组,可以指定创建数组的形状(shape)和数据类型(dtype)返回 ndarray 数组的内存信息,比如 ndarray 数组的存储方式,以及是否是其他数组的副本等。
2023-09-11 21:14:02 123
原创 md5加密
是将字符串编码为字节流的操作,使用UTF-8编码格式。MD5哈希算法只能处理字节流,所以需要将字符串转换为字节流。综合起来,这段代码的作用是将字符串编码为字节流,并将字节流添加到MD5哈希对象中进行更新。方法,用于将字节流添加到哈希对象中进行更新。这意味着,通过多次调用。可以将多个字节流添加到哈希对象中进行连续的哈希计算。对于python,我们需要导入一个库hashlib。方法获取对应字符串的MD5哈希值。是一个MD5哈希对象,可以通过。是调用MD5哈希对象的。
2023-09-04 17:25:39 42
原创 html标签之介绍
如上图所示,类似这种的双标签,就是我们的标签,其中的$符号,可以视为一个数字,其中是最大的标签,是最小的标签请确保将HTML标题标签只用于标题,不要仅仅为了生成粗体或者大号的文本而是用标题,在后面学习了css后,我们会将文字调整大小以及颜色等等样式。正确的使用标签,能够提升我们的seo。
2023-09-04 09:42:19 52
原创 html简介
它显示在浏览器窗口的标题栏或者状态栏上,其优势有利于seo优化,所谓的seo优化就是类似于一种排名,如下图,都通过一些排名,将所有的网站进行排序,但是有一种交钱的机制,是不同于他们的,嗯啊嗯啊,这里就不讲解了,大家懂的都懂,创建优质的网站,能够有利于提高我们的seo,让网站的排名更加提前。body元素包含文档的所有内容,直接在页面中显示,用户可以直观看到的内容,其body标签中的代码就是浏览器中,呈现给我们的数据。如下图,网站的所有数据都是通过body标签展示的。
2023-09-03 22:38:52 41
原创 python字体反爬
在爬取一些网站信息的时候,经常会有一些数据通过一些加密问价进行了加密,如果我们直接按照原有的思路去进行爬取数据的话,我们所爬取的数据是有问题的,比如上图的情况,那这种情况怎么办的,接下来跟着鼠鼠的步骤。我们的想法就是把所有的数据进行匹配,把上述的所有字符转换为我们原本的数字。我们可以在这里发现,字体的加密就是通过这个font—family这个字体文件更改的。其中上面是页面源代码中的编码,如果我们能够将页面源代码的数据全部替换成我们所需要的数据就行了,这就是我们解决问题的思路。
2023-08-29 19:00:31 1310
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人