- 博客(16)
- 收藏
- 关注
原创 PyTorch常用的简单数学运算
本文介绍了PyTorch中的主要数学运算操作,包括基础算术运算(逐元素加减乘除、标量运算)、矩阵运算(矩阵乘法、批量矩阵乘法、点积)、降维运算(求和、均值、极值)、范数计算(L1/L2范数)、三角函数与指数对数运算,以及高级运算(矩阵分解、特征值计算)和统计运算(协方差、直方图)。重点阐述了不同运算的输入输出形状关系,特别是批量矩阵乘法torch.bmm的维度处理规则,并详细解释了范数的数学定义及其在深度学习中的应用价值。这些运算为张量计算和机器学习模型实现提供了基础支持。
2025-07-20 11:57:59
556
原创 Broadcasting、cat()与 stack()、split() 和 chunk()
在 PyTorch 中,是一种强大的机制,允许不同形状的张量进行算术运算,而无需显式扩展张量。1.:PyTorch 从张量的最后一个维度开始,逐一向左比较每个维度的大小。:两个张量在某个维度上要么大小相同,要么其中一个为 1。:如果一个张量的维度数少于另一个,则在左侧补 1 直到维度数匹配。2、示例(1)a[3]b[]→ 广播为[3](2)、[2, 3]b[3]→ 左侧补 1 为[1, 3]→ 扩展为[2, 3]b沿第 0 维复制两次,与a逐元素相加。3、实际应用场景为批量数据添加偏置。
2025-07-20 03:54:52
798
原创 Tensor 进行维度变换常见操作(下)
本文介绍了PyTorch中五种张量维度操作方法: expand():通过广播扩展维度为1的轴,不复制数据; repeat():通过数据复制扩展任意维度; .t():专用于二维矩阵转置; transpose():交换指定两个维度,需注意内存连续性; permute():灵活重排所有维度顺序,可替代多次transpose操作。 关键区别:expand()节约内存但仅限维度为1的扩展,repeat()适用任意扩展但消耗内存;转置操作需注意内存连续性和数据顺序恢复问题。建议根据场景选择合适方法。
2025-07-20 02:35:58
266
原创 Tensor 进行维度变换常见操作(上)
一、view( )view()view()用于改变 Tensor 的形状(shape),但不改变数据本身。变换前后的元素总数必须相同。
2025-07-17 18:37:05
624
原创 PyTorch 中Tensor 的索引基本操作
PyTorch提供了多种灵活的Tensor索引方式,包括基本索引(支持负数和多维操作)、切片(start:stop:step语法)、步长采样(::step)、高级索引(index_select函数)、省略号(...简化写法)、布尔索引(条件筛选)和原地修改。这些方法可以组合使用,实现对Tensor数据的精确访问和修改,适用于不同维度的张量操作。
2025-07-17 15:28:35
356
原创 MNIST手写数字识别v1.0(Pytorch)
本文介绍了使用PyTorch框架实现MNIST手写数字识别的完整流程。通过单层全连接神经网络(输入784,输出10)配合softmax激活函数,构建了一个基础分类模型。详细说明了数据预处理(ToTensor转换)、数据集加载(DataLoader)、模型定义、MSE损失函数和SGD优化器的使用。训练过程中将标签转换为one-hot编码,测试阶段计算分类准确率。整个流程包含10个epoch的迭代训练,最终输出测试准确率。代码完整展示了从数据准备到模型训练评估的各个环节。
2025-07-15 23:45:12
1567
原创 Python中“列表”和“元组”有什么区别
特性列表(list元组(tuple可变性可变(可以修改)不可变(不能修改)语法()性能相对较慢较快方法许多(如append()remove()等)少量(如count()index()用途动态变化的数据不变数据、不可修改的集合作为字典键不能作为字典的键可以作为字典的键。
2025-01-21 18:16:46
756
原创 什么是“环境”?Conda环境?“库”?
环境”是学习和开发的基础,它保证了项目的独立性、可控性和稳定性。正确的配置环境不仅可以提高避免常见错误,还能提高开发效率和部署的可靠性。Conda环境是由Conda(一个开源包管理和环境管理工具)创建和管理的虚拟环境。它可以为每个项目提供一个独立的工作空间,包含特定的库、依赖项和Python版本。这种隔离特性避免了不同项目之间包版本的冲突,保证开发和运行的稳定性。“库”是计算机学习和开发中的核心概念,将常见功能封装成可复用的代码,简化开发流程,提高效率。
2025-01-21 17:58:05
1812
原创 选择排序法(C语言代码)
选择排序(Selection Sort)是一种简单直观的排序算法。它的基本思想是每次从待排序的元素中选择出最小(或最大)的元素,将其放到已排序部分的末尾,重复这个过程,直到所有元素都排序完毕。选择排序算法分为两种:升序排序和降序排序。
2024-06-12 10:14:05
897
1
原创 qsort函数简介,qsort具体使用举例,冒泡排序模拟实现qsort
1.'qsort'函数是C标准库中用于对数组进行排序的函数。使用快速排序算法(quicksort)算法,这是一种高效的排序算法。2.可以对任意类型的数据进行排序,因为它使用了比较函数指针来决定元素的相对顺序。3.它声明在<stdlib.h>头文件中。4.函数原型(1)'base':指向要排序的数组的其实地址(2)'nmemb' :数组中元素的个数(3)'size':每个元素的大小(以字节为单位)(4)'compar':比较函数,用于确定两个元素的相对顺序5.比较函数。
2024-06-01 16:19:12
1188
原创 写一个函数判断一个数是不是素数
简单的试除法是判断一个数是否为素数的基础方法之一,其原理是尝试将这个数除以比它小的所有自然数。如果一个数(n)不是素数,那么它必定有一个小于或等于sqrt(n)(sqrt:平方根)的因子。素数是一个大于1的自然数,它只有两个不同的正除数:1和它本身。例如,2、3、5、7、11和13都是素数,因为它们只能被1和它们自身整除。(3)4 不是素数,因为它除了1和4以外,还可以被2整除。3. 如果n是偶数(n > 2),则n不是素数。(1)2 是最小的素数,也是唯一的偶数素数。):如果n能被i整除,则n不是素数。
2024-04-09 17:22:13
491
原创 C语言输出杨辉三角形,并求和
1.每一行的首尾都是1。2.每个数字有它上方的两个数字求和所得。3.杨辉三角形中的每个数字表示一个组合数。第 i行第 j列的数字对应着 C(i-1, j-1),即从 (i-1) 个元素中选择 (j-1) 个元素的方法数。4. 特殊性质:杨辉三角形的每一行都是二项式系数展开式的系数。例如,((a+b)^n) 的展开式中的系数就可以在第 (n) 行找到。因此,杨辉三角形提供了一种直观的方式来理解和计算组合数。
2024-04-01 11:57:20
1866
原创 输入10个整数,按降序排列。冒泡法排序
由于我们的目标是降序排序,如果当前元素小于它的下一个元素,这意味着它们的顺序是错误的,所以需要交换这两个元素。- 如果你只写`numbers[i]`,那意味着你在尝试传递一个整数值(即数组第`i`个元素的当前值)给`scanf`,而不是一个地址。简而言之,使用`&`是为了获取变量的地址,这在你想要某个函数(如`scanf`)修改变量的值时是必需的。- `&numbers[i]`提供了数组第`i`个元素的准确地址,告诉`scanf`将输入的整数存储在哪里。这步做完后,最后的元素会是最大的数。
2024-03-31 14:22:52
2653
原创 C语言个人学习规划
5.培养解决问题的能力:通过C语言的学习,要掌握分析问题,设计算法,编写代码,调试程序等基本的解决问题的方法和技巧。6.准备进一步学习其他编程语言:C语言是其他编程的语言基础,为以后学习C++,Java, Python等打基础。腾讯,华为,京东安全......(哈哈哈,好多,希望自己能过努力学习,手里有技术,提升自己的整体实力!有变量,数据类型,运算符,控制语句,函数,指针,数组,结构体等。2.理解熟悉程序执行流程,包括程序的入口,顺序,选择,循环结构等。作为一个C语言初学者,给自己写一个简单的规划。
2024-03-29 09:22:06
751
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅