当前位置: 首页 > news >正文

常见代码八股

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

def target_function(x):return x ** 2 + x +4def gradient(x):return 2*x + 1x_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
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#实现Softmax、Logsoftmax、Sigmoid以及交叉熵损失
import torch
import torch.nn.functional as Fdef 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))
http://www.dtcms.com/a/298942.html

相关文章:

  • 房价预测|Pytorch
  • 【Android】约束布局总结(1)
  • 数据结构预备知识
  • Linux的生态与软件安装
  • 基于深度学习的图像分类:使用Inception-v3实现高效分类
  • Coze 与 Dify 深度对比:2025 年 AI 智能体平台选型指南
  • 【MySQL】深入浅出事务:保证数据一致性的核心武器
  • GStreamer与OpenCV集成
  • 【RocketMQ】一分钟了解RocketMQ
  • Linux系统调用概述与实现:深入浅出的解析
  • 2025.7.26
  • 50道JavaScript基础面试题:从基础到进阶
  • 【图像分割】记录1:unet, yolov8_seg
  • 【嵌入式电机控制#20】无刷直流电机硬件案例
  • 详解力扣高频SQL50题之619. 只出现一次的最大数字【简单】
  • 【ELasticsearch】节点角色分类与作用解析
  • SQL 通用数据类型
  • C# 判断语句深度解析
  • 详解力扣高频SQL50题之1084. 销售分析 III【简单】
  • 基于 Claude Code 与 BrowserCat MCP 的浏览器自动化全链路构建实践
  • OGG同步Oracle到Kafka不停库,全量加增量
  • 显式等待和隐式等待的区别
  • JavaScript 立即执行函数(IIFE)运行时行为分析笔记
  • 数控滑台的功能与应用
  • 生产环境使用云服务器(centOS)部署和使用MongoDB
  • MongoDB数据模型
  • Zookeeper的简单了解
  • 学习嵌入式的第三十三天-数据结构-(2025.7.25)服务器/多客户端模型
  • Typecho插件开发:自定义注册用户组与免审发布功能实现
  • OTG原理讲解