常见代码八股

1. 利用梯度下降法,计算二次函数y=x^2+x+4的最小值

python 复制代码
def target_function(x):
    return x ** 2 + x +4

def gradient(x):
    return 2*x + 1

x_init = 10
x = x_init
steps = 100
lr = 0.1
for i in range(100):
    x = x - lr*gradient(x)

print(f"最小值 f(x) = {target_function(x):.4f}")

2. 实现交叉熵损失、Softmax以及Sigmoid



python 复制代码
#实现Softmax、Logsoftmax、Sigmoid以及交叉熵损失
import torch
import torch.nn.functional as F

def softmax(x, dim=-1):
    exp_x = torch.exp(x)
    return exp_x/torch.sum(exp_x, dim=dim, keepdim=True)

# 1.上溢出问题:当x趋向于无穷大时,会导致exp(x)超过数值范围
# 2.下溢出问题:当x趋向于负无穷大时,会导致exp(x)被截断变成0,加上log会出现log(0)的情况。所以要避免单独计算exp(x)
# 解决方案:1. 减掉最大值 2. 计算log时先拆开

def log_softmax(x, dim=-1):
    x = x - torch.max(x,dim=-1,keepdim=True)[0]
    return x - torch.log(torch.sum(torch.exp(x),dim=-1,keepdim=True))

# x = torch.rand((2,3))
# print(torch.allclose(F.softmax(x,dim=-1),softmax(x)))
# print(torch.allclose(log_softmax(x),torch.log(softmax(x))))
# print(torch.allclose(F.log_softmax(x,dim=-1),log_softmax(x)))

def sigmoid(x):
    return 1/(1+torch.exp(-x))

# print(torch.allclose(torch.sigmoid(x),sigmoid(x)))

def cross_entropy_loss(y_pred, y_true):
    y_pred = log_softmax(y_pred,dim=-1)
    return -torch.sum(y_true*y_pred, dim=-1)

# input = torch.rand((2,3))
# label_onehot = torch.tensor([[0,0,1],[0,1,0]])
# print(cross_entropy_loss(input,label_onehot))

# # pytorch内置的cross_entropy_loss的输入是类别索引,不是one hot向量

# label = torch.argmax(label_onehot,dim=-1)
# offi_cross_entropy_loss = torch.nn.CrossEntropyLoss(reduction="none")

# print(torch.allclose(offi_cross_entropy_loss(input,label), cross_entropy_loss(input,label_onehot)))
# print(offi_cross_entropy_loss(input,label))
相关推荐
AndrewHZ2 小时前
【3D重建技术】如何基于遥感图像和DEM等数据进行城市级高精度三维重建?
图像处理·人工智能·深度学习·3d·dem·遥感图像·3d重建
nonono4 小时前
深度学习——常见的神经网络
人工智能·深度学习·神经网络
小艳加油4 小时前
Python机器学习与深度学习;Transformer模型/注意力机制/目标检测/语义分割/图神经网络/强化学习/生成式模型/自监督学习/物理信息神经网络等
python·深度学习·机器学习·transformer
钢铁男儿5 小时前
如何构建一个神经网络?从零开始搭建你的第一个深度学习模型
人工智能·深度学习·神经网络
Silence zero6 小时前
day43_2025-08-17
人工智能·深度学习·机器学习
学行库小秘6 小时前
ANN神经网络回归预测模型
人工智能·python·深度学习·神经网络·算法·机器学习·回归
文弱_书生6 小时前
为什么神经网络在长时间训练过程中会存在稠密特征图退化的问题
人工智能·深度学习·神经网络
楚韵天工6 小时前
基于GIS的无人机模拟飞行控制系统设计与实现
深度学习·算法·深度优先·无人机·广度优先·迭代加深·图搜索算法
蒋星熠8 小时前
C++零拷贝网络编程实战:从理论到生产环境的性能优化之路
网络·c++·人工智能·深度学习·性能优化·系统架构
天下弈星~10 小时前
GANs生成对抗网络生成手写数字的Pytorch实现
人工智能·pytorch·深度学习·神经网络·生成对抗网络·gans