- 博客(21)
- 收藏
- 关注
原创 什么是闭包问题?不要太通俗and易懂
闭包问题是指在函数定义时引用了外部变量,这些变量在函数被调用时可能已经发生了变化。解决闭包问题的方法包括使用默认参数和局部作用域等技巧,以确保每个函数拥有独立的变量副本,避免引用外部变量的最终值。
2024-07-22 16:26:55
503
原创 优化器中 weight_decay=1e-5 的作用是什么?
是优化器中的一个参数,用于实现L2正则化(也称为权重衰减)。L2正则化在损失函数中增加了权重参数的平方和,从而在每次梯度更新时对权重进行惩罚,避免权重过大。这有助于防止过拟合,并使模型更具泛化能力。在公式上,L2正则化将损失函数从原始的损失 L(𝜃) 修改为:其中,𝜃 是模型的权重参数,λ 是正则化强度,也就是。
2024-07-18 11:05:47
472
原创 为什么data_generator()函数中,使用yield返回数据,而不用return?
生成器函数是一个返回迭代器的函数,可以在执行过程中暂停,并在需要时恢复执行。这使得它非常适合生成序列或流数据,而不需要一次性在内存中存储所有数据。yieldyield关键字将一个函数转变为一个生成器函数,使其能够逐步生成值,而不需要一次性计算和存储所有值。生成器函数在处理大数据集和需要惰性求值的场景中非常有用。
2024-07-03 21:03:16
236
原创 对比两种读取数据的方法——PyTorch
这种方法首先将数据集的路径 存储在变量 中。 然后,使用 Pandas 的 函数根据 中的路径找到 ,并从中读取数据并将其存储在 DataFrame 中。 最后,通过 方法将 DataFrame 转换为 NumPy 数组 当使用 pandas 读取 CSV 文件时,默认情况下会得到一个 DataFrame 对象。虽然DataFrame 对象也可以直接用于一些数据处理,但在许多机器学习任务中,处理 numpy 数组更加直接和高效。除此之外,将数据转换为 numpy 数组后,能够更方便地与 Py
2024-06-22 19:28:12
266
1
原创 .grad_fn 的作用是什么?
.grad_fn` 是 PyTorch 中每个张量的一个属性,用于记录生成这个张量的操作。当进行反向传播时,`grad_fn` 帮助 PyTorch 确定如何沿着计算图传播梯度。通过查看 `grad_fn`,我们可以理解张量是如何通过一系列操作生成的,这对于调试和理解模型的计算流程非常有用。
2024-06-19 22:05:04
452
原创 如何正确使用.backward(gradient)中的gradient,自定义gradient参数?
第一段代码中的 out.backward() 自动计算 y.mean() 对 x 的梯度;第二段代码中的 y.backward(gradient) 使用自定义梯度 gradient 来计算 y 对 x 的梯度。因此,梯度的具体值会因为使用的 gradient 参数不同而有所变化。- 当输入 x 是向量,输出 y 是标量时,在 x 上的梯度是一个向量,这时不需要gradient参数。当输入 x 是向量,输出 y 是向量时, y 在 x 上的梯度是一个雅可比矩阵。
2024-06-19 21:35:34
452
原创 使用PyTorch的自动求导功能 计算雅可比矩阵(细节)
雅可比矩阵是对多元函数的导数进行梯度扩展的一种矩阵表示。对于一个具有m个输入和n个输出的函数,雅可比矩阵的大小为n×m。雅可比矩阵中的每个元素表示了输出分量相对于输入分量的偏导数。自动求导是PyTorch的一项重要功能。在计算过程中,PyTorch会为每个参与计算的张量建立一个计算图,用于记录计算过程中涉及的操作和张量之间的依赖关系,基于这个计算图,PyTorch可以根据链式法则自动计算函数的导数。
2024-06-19 20:13:58
1092
1
原创 损失函数下降到很大值就稳定了怎么办?!
综上,图中损失曲线均收敛至20000左右,没有出现回荡现象,因此学习率不优先修改。收敛值过高,怀疑可能是局部最优了,所以优先调节batch size。但是后续发现,我这边的代码真的不太好,效果很差,所以要考虑一下是不是损失函数太简单了,方法论不太好!:学习率太大,一步前进的路程太长,会出现来回震荡的情况,但是学习率太小,收敛速度会比较慢。终端第1列:epochs,第2列:训练损失(蓝色曲线),第3列:测试损失(橙色曲线)由上述结果可以看出,调小batch size之后,收敛后的损失值有明显下降。
2024-05-08 21:12:34
338
1
原创 解读张量的.detach()用法&用途
其中,’x.requires_grad_(True)‘和’x_1.requires_grad_(True)‘这两行修改了’x‘和’x_1’的 ‘requires_grad`属性。这使得PyTorch开始跟踪对`x`和`x_1`的操作,并且在需要的时候(如进行一个反向传播)计算这些操作的梯度。其中,‘xk.detach()’会创建一个新的张量‘x‘,它基于`xk`但与原始的计算图脱离。类似的,`xk_1.detach()`创建一个新的张量`x_1`,它基于`xk_1`但也是与原始的计算图脱离的。
2024-05-05 13:56:57
355
2
原创 TypeError: can‘t convert np.ndarray of type numpy.object_. The only supported types are: float64, fl
将numpy数组进行强制类型转换成float类型(或者任何pytorch支持的类型:float64, float32, float16, int64, int32, int16, int8, uint8, and bool)即可。读入的numpy数组里的元素是object类型,无法将这种类型转换成tensor。
2024-04-24 22:17:34
1149
原创 什么是图神经网络的过度光滑和过度挤压问题?二)
1. 对于图数据的瓶颈结构,图中红色粗实线代表边权较高的边连接,而图中绿色虚线虽然原图没有画,但是不代表节点之间一定没有联系,而是相对于边权较高的边来说绿色虚线的连接关系较弱,甚至没有,所以没有画出;3. 过度光滑和过度挤压 难以同时得到真正有效的缓解,现有文献开始做两者之间的平衡,以实现一种折衷的方法。2. 个人观点,过度挤压是由。
2024-04-24 15:17:04
324
原创 废话不多,方法简单:module ‘numpy‘ has no attribute ‘bool‘
废话不多,方法简单:module 'numpy' has no attribute 'bool'
2024-03-26 09:45:49
472
1
原创 FutureWarning: The default value of numeric_only in DataFrame.corr is deprecated. In a future versio
简单迅捷
2024-03-26 09:30:01
678
原创 废话不多,方法简单:RuntimeError: grad can be implicitly created only for scalar outputs
对一个非标量值进行反向传播(backward pass),但没有提供梯度(grad)的参数。在自动微分中,我们通常对标量(单个数值)进行反向传播,计算该标量对某些输入张量的梯度。如果反向传播的输出不是标量,就需要显式地指定一个与输出同形状的张量来表示梯度。2. 通过提供梯度参数,就相当于告诉PyTorch如何对非标量输出进行反向传播。同形状的张量,并且包含了损失函数对每个元素的梯度。,因为可能不同值的梯度对结果影响程度不同;的作用其实可以简单地理解成在求梯度时的。后再进行反向传播,相当于对。
2023-11-20 20:33:32
1371
1
原创 废话不多,方法简单:RuntimeError: self must be a matrix
废话不多,方法简单:RuntimeError: self must be a matrix
2023-11-20 19:36:40
752
1
原创 废话不多,方法简单:RuntimeError: mat1 and mat2 shapes cannot be multiplied (1x16 and 20x64)
废话不多,方法简单:RuntimeError: mat1 and mat2 shapes cannot be multiplied (1x16 and 20x64)
2023-11-20 15:49:15
2749
1
原创 废话不多,方法简单:AttributeError: ‘numpy.ndarray‘ object has no attribute ‘iloc‘
废话不多,方法简单:AttributeError: 'numpy.ndarray' object has no attribute 'iloc'
2023-11-14 21:31:56
3971
1
原创 废话不多,方法简单:IndexError: list assignment index out of range
废话不多,方法简单:IndexError: list assignment index out of range
2023-11-07 11:58:45
208
1
原创 废话不多,方法简单:‘builtin_function_or_method‘ object is not subscriptable
废话不多,方法简单:'builtin_function_or_method' object is not subscriptable
2023-10-23 11:34:38
1527
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人