尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

np.clip的使用

np.clip的使用
📅 发布时间:2026/6/20 23:23:55

np.clip() 是 NumPy 中一个非常实用的函数,用于将数组中的值裁剪(或者说限制)在一个指定的区间内。

它的作用就像一把剪刀,把数组中所有超出规定范围的数值都剪掉,让它们回到这个范围的边缘。

np.clip() 的基本用法

np.clip() 的基本语法是:
np.clip(a, a_min, a_max, out=None)

  • a: 你想要裁剪的数组(或数值)。
  • a_min: 数组中数值的下限。所有小于 a_min 的值都会被替换成 a_min。
  • a_max: 数组中数值的上限。所有大于 a_max 的值都会被替换成 a_max。

示例

假设你有一个数组,你想让它的所有值都在 0 到 10 之间。

import numpy as np# 创建一个包含各种数值的数组
arr = np.array([-5, 2, 8, 12, 100, 0.5])# 将数组中的值限制在 [0, 10] 范围内
clipped_arr = np.clip(arr, 0, 10)print(clipped_arr)
# 输出: [ 0.  2.  8. 10. 10.  0.5]

可以看到,在这个例子中:

  • -5 小于下限 0,所以被裁剪成了 0。
  • 12 和 100 都大于上限 10,所以都被裁剪成了 10。
  • 2, 8, 0.5 都在 0 到 10 之间,所以它们的值保持不变。

np.clip() 在机器学习中的应用

np.clip() 在机器学习中非常有用,通常用于防止数值溢出或确保结果的稳定性。在你的代码中,它有两个关键的应用:

  1. 在 Softmax 函数内部防止上溢

def softmax(x):
x = np.clip(x,-1e10,100)
ex = np.exp(x)
sum_ex = np.sum(ex,axis=1,keepdims=True)

result = ex/sum_exresult = np.clip(result,1e-10,1e10)
return  result
```Softmax 函数会使用 `np.exp()` 进行指数运算。如果 `x` 的值太大(例如超过709),`np.exp(x)` 会发生**上溢**,结果变为 `inf`(无穷大)。`np.clip()` 将 `x` 的值限制在 100,确保 `np.exp()` 的结果在一个可计算的范围内,从而避免了溢出。
  1. 在 Softmax 函数输出后防止对数运算错误

    result = np.clip(result, 1e-10, 1e10)
    loss = -np.mean(batch_labels * np.log(result))
    

    交叉熵损失函数使用了 np.log()。如果 Softmax 的输出 result 中有任何一个值是 0,np.log(0) 的结果将是 -inf,导致整个程序崩溃。通过将 result 的值限制在一个非常小的正数(1e-10)以上,np.clip() 确保了 np.log() 的输入永远不会是0,从而提高了程序的稳定性。
    不过这样做有点太蠢了,建议X直接减去最大值,至于证明的话,可以搜一下。

def stable_softmax(x):z = x - np.max(x, axis=1, keepdims=True) # 减去每行的最大值ex = np.exp(z)return ex / np.sum(ex, axis=1, keepdims=True)

相关新闻

  • 深入解析:Xilinx Video Mixer
  • iOS 26 能耗检测实战指南 如何监测 iPhone 电池掉电、Adaptive Power 模式效果与后台耗能问题(uni-app 与原生 App 优化必看)
  • Transformer的个人理解

最新新闻

  • Wotan:Vue 3 + TypeScript 项目的类型感知型 Linter
  • Bilibili视频转文字终极指南:如何5分钟将B站视频变成可编辑文本
  • 2026无锡装修,低价套餐的坑我替你们踩过了!这才是真正靠谱的选法 - 装企自媒体训练营辉哥
  • 2026三亚本地正规瓷砖空鼓维修服务商盘点|无损免拆砖修复,全域上门售后有保障 - 宅安选房屋修缮
  • 2026宿迁本地正规瓷砖空鼓维修服务商盘点|无损免拆砖修复,全域上门售后有保障 - 宅安选房屋修缮
  • AI写技术方案的三大提示工程技巧

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号