你真的会用sliderInput吗?深入剖析范围参数min、max与step的黄金搭配

可将input元素转换为漂亮的slider滑块的jQuery插件 Bubble Slider是一款可以将任意input元素转换为漂亮的范围滑块slider的jQuery插件。转换后的滑块以圆形气泡作为滑块的拖动目标,并且会在拖动目标上以tooltip的形式显示当前滑块的值。 立即下载

第一章:你真的了解sliderInput的核心参数吗?

在Shiny应用开发中,sliderInput() 是最常用的输入控件之一,用于提供连续或离散的数值选择。理解其核心参数不仅有助于提升用户体验,还能避免常见的逻辑错误。

基本语法结构

sliderInput(inputId, label, min, max, value, step = NULL, ...)
其中每个参数都有明确用途,合理配置能极大增强交互灵活性。

关键参数详解

  • inputId:唯一标识符,供input[[...]]在服务端引用。
  • label:显示在滑块上方的说明文本,可设为""隐藏标签。
  • min 与 max:定义取值范围,超出将被自动截断。
  • value:初始值,支持单值(单滑块)或向量(双滑块区间)。
  • step:步长控制,设为1时仅允许整数变化,NULL则连续变化。

常用配置示例

以下代码创建一个限定年龄选择的滑块:
# 创建年龄选择器,步长为1,初始值为25
sliderInput(
  inputId = "age",
  label = "请选择您的年龄:",
  min = 18,
  max = 100,
  value = 25,
  step = 1
)
该滑块将在UI中渲染为可拖动的选择条,用户只能选择18到100之间的整数。

参数行为对照表

参数类型作用
inputId字符型在server函数中通过input$[id]获取值
value数值或向量单值生成单手柄,双值生成范围选择
step数值或NULL控制递增粒度,NULL表示连续
正确设置这些参数,是构建响应式、易用性强的Shiny界面的基础。

第二章:min与max的合理设定策略

2.1 理解min和max在数据范围中的作用

在数据处理与算法设计中,`min` 和 `max` 函数常用于确定数值集合的边界,为后续的范围校验、归一化或异常检测提供基础。
核心功能解析
`min` 返回集合中的最小值,`max` 返回最大值。它们可用于限制输入范围,防止越界。
def clamp(value, min_val, max_val):
    return max(min_val, min(value, max_val))
该函数通过嵌套调用 `min` 与 `max`,确保返回值落在 `[min_val, max_val]` 区间内。例如,`clamp(15, 0, 10)` 返回 `10`。
实际应用场景
  • 用户输入验证:限制年龄输入在合理区间
  • 图形渲染:约束坐标不超出画布尺寸
  • 机器学习:特征缩放前获取数据极值

2.2 基于业务场景设定合理的边界值

在系统设计中,边界值的设定不应仅依赖技术极限,而应紧密结合实际业务场景。例如,在订单金额校验中,需根据支付渠道限制、用户消费习惯等综合因素确定上下限。
典型业务边界示例
  • 单笔订单最大金额:受限于风控策略与支付网关
  • 批量操作数量上限:避免内存溢出与响应延迟
  • 时间窗口范围:如7天内可退款,超出则进入仲裁流程
代码实现示例

// ValidateOrderAmount 根据业务规则校验订单金额
func ValidateOrderAmount(amount float64) error {
    const min = 0.01      // 最低支付单位(分)
    const max = 50000.00  // 单笔限额(风控策略)
    if amount < min {
        return errors.New("订单金额不能小于0.01元")
    }
    if amount > max {
        return errors.New("单笔订单不得超过50000元")
    }
    return nil
}
该函数通过常量定义业务边界,确保所有交易符合金融合规要求。参数说明:min为最小有效金额,防止无效支付;max为风控上限,降低欺诈风险。

2.3 动态min/max在响应式UI中的应用

在构建响应式用户界面时,动态设置元素的最小与最大尺寸能有效提升跨设备兼容性。通过CSS的min()与max()函数,可基于视口单位、固定值或媒体查询条件灵活调整布局。
动态尺寸函数语法
.container {
  width: min(100%, 1200px);
  height: max(400px, 50vh);
}
上述代码中,min(100%, 1200px)确保容器宽度不超过1200px但始终占满可用空间;max(400px, 50vh)则保证高度至少为视口的一半或400px,取较大值。
响应式图像适配场景
  • 使用max-width: min(100%, 800px)防止图像溢出屏幕
  • 结合height: auto维持宽高比
  • 在移动设备上自动压缩,在桌面端展示高清原图

2.4 避免常见边界错误:溢出与无效区间

在处理数组、循环和数值计算时,边界错误是引发程序崩溃的常见原因。其中,整数溢出和无效区间访问尤为典型。
整数溢出示例

#include <stdio.h>
int main() {
    unsigned int max = 4294967295;
    printf("%u\n", max + 1); // 输出 0,发生溢出
    return 0;
}
该代码中,unsigned int 达到上限后加1,导致回绕至0。此类问题在资源计数或缓冲区长度计算中可能引发严重漏洞。
区间有效性检查
使用数组前应验证索引范围:
  • 确保索引 ≥ 0
  • 确保索引 < 数组长度
  • 对动态输入进行前置校验
通过静态分析工具和运行时断言可有效减少此类错误。

2.5 实践案例:构建人口年龄筛选滑块

在数据可视化应用中,年龄范围筛选是常见交互需求。本案例实现一个响应式滑块组件,用于动态过滤人口数据。
核心HTML结构
<input type="range" id="ageSlider" min="0" max="100" value="50" step="1">
<span id="ageValue">50岁</span>
该滑块设置最小值0、最大值100,步长为1,初始选中50岁,实时反映用户选择。
JavaScript事件监听
document.getElementById('ageSlider').addEventListener('input', function() {
  document.getElementById('ageValue').textContent = this.value + '岁';
  filterPopulationData(this.value);
});
通过input事件实现实时响应,每次滑动即更新显示值并调用过滤函数filterPopulationData。
数据过滤逻辑
  • 接收滑块当前值作为年龄阈值
  • 遍历人口数据集,筛选年龄小于等于该值的记录
  • 更新图表或列表展示结果

第三章:step参数的精度控制艺术

3.1 step如何影响用户输入的粒度

在表单输入中,`step` 属性用于控制可输入数值的增量单位,直接影响用户输入的精度与交互体验。
基本作用机制
当 `` 设置了 `step` 值后,用户每次增减操作(如点击上下箭头)都会按该值进行变化。例如:
<input type="number" step="0.1" min="0" max="1">
上述代码允许用户以 0.1 为单位在 0 到 1 范围内输入,实现精细控制。
不同step值的影响对比
step值允许输入示例适用场景
11, 2, 3整数计数
0.010.01, 0.02, 1.99价格、货币输入
any任意小数高精度科学计算
设置 `step="any"` 可绕过默认步长限制,允许任意精度输入,适用于对粒度无约束的场景。

3.2 小数步长在金融与科学计算中的实践

在高精度计算场景中,小数步长的控制直接影响结果的准确性。金融领域的利率计算、期权定价,以及科学模拟中的微分方程求解,均依赖于精细的时间或空间步长划分。
浮点步长的迭代实现

import numpy as np

# 生成0到1之间步长为0.1的序列
steps = np.arange(0, 1, 0.1)
print(steps)
# 输出: [0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
该代码利用 numpy.arange 生成等间距小数序列。参数分别为起始值、结束值(不包含)和步长。在金融时间序列建模中,此类序列常用于离散化连续过程。
应用场景对比
领域步长典型值精度要求
金融衍生品定价0.01 ~ 0.1高(避免舍入误差累积)
物理仿真1e-6 ~ 1e-3极高(稳定性依赖步长)

3.3 整合min、max、step避免取值偏差

在数值输入控制中,合理配置 min、max 和 step 参数可有效防止取值偏差,确保用户输入落在预期范围内。
参数协同机制
当三者共存时,浏览器会基于 step 基准计算合法值。例如,若 min=0、step=5,则合法值为 0, 5, 10, 15... 即使设置 value=7,也可能被自动修正或标记为无效。
<input type="number"
       min="10"
       max="100"
       step="10"
       value="25">
上述代码中,value=25 不是 10 的整数倍且起始于 10,因此不满足步进规则,将触发校验失败。
规避取值异常的策略
  • 确保初始值符合 min + n × step 数学关系
  • 动态调整 step 以匹配业务精度需求(如金额使用 0.01)
  • 结合 JavaScript 校验提升容错能力

第四章:三参数协同设计的最佳实践

4.1 黄金搭配原则:确保可选值数量适中

在设计配置项或枚举类型时,可选值的数量直接影响系统的可用性与维护成本。过多的选项会增加用户认知负担,而过少则限制灵活性。
合理范围建议
  • 每个配置项的可选值建议控制在3~7个之间,符合人类短期记忆极限
  • 超出此范围应考虑分组或分级处理
代码示例:状态枚举设计
type Status string

const (
    StatusPending   Status = "pending"
    StatusRunning   Status = "running"
    StatusCompleted Status = "completed"
    StatusFailed    Status = "failed"
)
该Go语言枚举定义了任务状态,共4个可选值,覆盖主要生命周期阶段。每个值语义清晰,避免冗余状态(如“processing”与“running”),降低调用方判断复杂度。

4.2 用户体验优化:平滑交互与反馈机制

实时反馈提升操作感知
用户在执行关键操作时,系统应即时提供视觉或状态反馈。例如,在按钮点击后显示加载状态,避免重复提交。
  1. 检测用户输入行为
  2. 触发前端状态变更
  3. 调用API并展示过渡动画
  4. 根据响应更新UI或提示错误
防抖与节流优化交互流畅性
为防止高频事件导致性能下降,使用节流技术控制函数执行频率。
function throttle(func, delay) {
  let inThrottle;
  return function() {
    const args = arguments;
    const context = this;
    if (!inThrottle) {
      func.apply(context, args);
      inThrottle = true;
      setTimeout(() => inThrottle = false, delay);
    }
  };
}
// 将窗口滚动事件处理函数节流,每100ms最多执行一次
window.addEventListener('scroll', throttle(handleScroll, 100));
上述代码通过闭包维护执行锁状态 inThrottle,确保函数在设定延迟内仅执行一次,有效降低事件处理器的调用频率,提升页面响应能力。

4.3 防坑指南:规避浮点运算误差与舍入问题

在金融计算或高精度场景中,浮点数的二进制表示局限会导致意外误差。例如,0.1 + 0.2 !== 0.3 是典型问题。
常见误差示例

console.log(0.1 + 0.2); // 输出 0.30000000000000004
该现象源于IEEE 754标准中,十进制小数无法精确映射为二进制浮点数。
解决方案对比
方法适用场景精度保障
使用整数运算金额(以分为单位)✅ 高
toFixed() + parseFloat展示层格式化⚠️ 谨慎使用
decimal.js 库复杂计算✅ 最佳
推荐实践
  • 涉及金钱计算时,统一转换为最小单位(如分)进行整数运算
  • 高精度需求场景引入 decimal.js 等专用库

4.4 综合实例:实现温度区间选择器

在工业监控系统中,温度区间选择器常用于筛选设备正常运行的温度范围。本例通过函数式编程思想实现灵活的区间判断逻辑。
核心逻辑实现
// 定义区间检查函数类型
type RangeChecker func(float64) bool

// 生成温度区间检查器
func TemperatureRange(min, max float64) RangeChecker {
    return func(temp float64) bool {
        return temp >= min && temp <= max
    }
}
上述代码利用闭包封装最小值与最大值,返回可复用的检查函数。参数 min 和 max 构成合法温度区间,返回函数保持对这些参数的引用。
使用示例
  • 创建 15°C 至 30°C 的舒适区:comfort := TemperatureRange(15, 30)
  • 调用 comfort(22) 返回 true
  • 支持动态配置多个阈值场景

第五章:从掌握参数到驾驭交互设计

理解用户行为驱动的参数设计
现代交互系统的核心在于将静态参数转化为动态响应机制。以表单验证为例,通过实时监听输入事件并调整验证规则,可显著提升用户体验。

// 动态表单验证示例
const formConfig = {
  username: { required: true, minLength: 3 },
  email: { required: true, pattern: /^[^\s@]+@[^\s@]+\.[^\s@]+$/ }
};

function validateField(field, value) {
  const rules = formConfig[field];
  if (rules.required && !value) return false;
  if (rules.minLength && value.length < rules.minLength) return false;
  if (rules.pattern && !rules.pattern.test(value)) return false;
  return true;
}
构建响应式交互反馈链
有效交互依赖于清晰的反馈路径。以下为常见用户操作与系统响应的映射关系:
用户操作预期响应延迟阈值
按钮点击视觉反馈(如颜色变化)< 100ms
表单提交加载状态 + 成功/错误提示< 1s
搜索输入自动补全建议< 300ms
实现可配置的交互策略
通过参数化控制交互行为,可在不同场景下灵活调整。例如,使用配置对象管理弹窗行为:
  • 设置 autoClose 控制是否自动关闭
  • 通过 animationDuration 调整动效时长
  • 利用 onInteraction 注册回调函数处理用户动作
[用户触发] → [事件捕获] → [参数校验] → [状态更新] → [UI渲染] → [反馈输出]
CrewAI 多 Agent 实战包 v1(Mock免Key跑通+通义千问可选+流水线样例) 本资源是 CrewAI 风格多 Agent 可运行工程包:研究→写作→审校等流水线样例。无 API Key 时自动降级 Mock 引擎跑通;有 DASHSCOPE_API_KEY 时可接真实 CrewAI + 通义千问。含中文 README、samples、smoke 留档、单元测试。本包不含密钥。关联博客:https://blog.youkuaiyun.com/mtl1994 立即下载

相关推荐

市场销售总监年终汇报必备PPT.pptx

市场销售总监年终汇报必备PPT

微信小程序——input输入框的使用、slider组件

slider组件是通常是滑动选择器,通常情况下,手机操作滑动选择器远比直接进行数值输入的好。 以下是代码 a.js changeSize:function(e){ this.data.icon.size = e.detail.value; this.setData(this.data); }, changeOpacity:function(e){ this.data.icon.opacity = e.detail.value; this.setData(this.data); } 这段是直

Tracy_ning的博客 1101

2263XT开卡工具N48R,威刚S20

2263XT开卡工具N48R,威刚S20可用

原生slider组件input[type=range]使用记录

原生slider滑块标签input[type=range]的效果展示

qq564280420的博客 967

半桥LLC谐振变换器开环+闭环仿真设计资料(Simulink仿真实现)

内容概要:本文档系统性地介绍了半桥LLC谐振变换器的开环与闭环仿真设计方法,基于Simulink平台构建完整的仿真模型,涵盖系统建模、关键参数设计、控制策略实现及动态性能验证全过程。重点阐述了LLC谐振变换器的工作原理、谐振腔参数(Lr、Cr、Lm)的优化设计方法、零电压开关(ZVS)与零电流开关(ZCS)等软开关技术的实现机制,并深入探讨电压/电流双闭环控制策略,特别是恒压恒流双竞争控制逻辑的切换机制与稳定性保障。资料配套提供完整的仿真模型、详细说明文档及参考文献,有助于全面掌握其在启停过程、负载突变等工况下的动态响应特性与系统鲁棒性调控方法。; 适合人群:具备电力电子技术基础理论知识和Simulink仿真操作能力的高校研究生、科研机构研究人员,以及从事高频高效开关电源、新能源汽车车载充电机(OBC)、充电桩电源、数据中心供电等领域的工程技术人员。; 使用场景及目标:① 掌握LLC谐振变换器在实际工程中的精确建模与仿真分析流程;② 深入理解并独立实现从开环频率调制到闭环反馈控制的平滑切换逻辑;③ 应用于高效率DC-DC变换器、电动汽车充电系统、可再生能源并网电源等场景下的控制系统设计与性能优化; 阅读建议:建议结合所提供的仿真模型进行分步调试与参数扫描实验,重点关注控制器带宽设计、谐振元件参数匹配对效率的影响以及系统上电过程中的软启动策略设计,同时推荐对比学习全桥LLC、CLLC等衍生拓扑的相关资料,以建立完整的谐振变换器控制体系认知。

SOP 配电网故障重构方法研究【IEEE33节点】(Matlab代码实现)

内容概要:本文围绕基于SOP(Soft Open Point)的配电网故障重构方法展开研究,采用IEEE33节点标准配电系统作为仿真测试平台,利用Matlab进行代码实现与仿真验证。研究重点在于通过SOP这一柔性电力电子装置实现故障后网络拓扑的快速重构,提升供电恢复能力与系统可靠性。文中详细阐述了故障重构的数学建模过程,结合优化算法实现负荷转供与孤岛划分的协同决策,在保证辐射状运行约束的前提下,最大限度恢复失电负荷,并降低网络损耗。该方法充分体现了SOP在主动配电网中的灵活调控优势,为现代智能配电网的自愈控制提供了有效技术路径。; 适合人群:电气工程及相关专业的高校研究生、从事配电网自动化与智能电网研究的科研人员,以及具备一定Matlab编程基础和电力系统分析背景的研发技术人员。; 使用场景及目标:① 掌握基于SOP的配电网故障恢复机制与重构策略设计;② 学习如何在Matlab环境下构建IEEE33节点系统模型并实现故障重构算法;③ 深入理解含分布式电源与柔性装置的主动配电网优化运行方法; 阅读建议:建议结合电力系统分析基础知识,重点关注SOP的建模方式、故障重构的优化目标与约束条件设定,并动手实践Matlab代码以加深对算法流程和仿真结果的理解。

input元素转换为漂亮的slider滑块jQuery插件 - Bubble Slider

下载地址 Bubble Slider是一款可以将任意input元素转换为漂亮的范围滑块slider的jQuery插件。转换后的滑块以圆形气泡作为滑块的拖动目标,并且会在拖动目标上以tooltip的形式显示当前滑块的值。使用方法使用该滑块插件需要在页面中引入bubble-slider.css,jQuery和jquery.bubble-slider.js文件。 HTML结构为你需要转换的input元素添加bubble-slider class,你还可以设置min, max, step和value属性来设置滑块

ICode联盟 382

一份外盘期货历史高频tick数据,涵盖能源、贵金属、股指等主要品种的逐笔成交与盘口快照 每条记录包含精确至毫秒的时间戳、合约代码、成交价格、成交量以及主动买卖方向标识 同时提供该时刻的最优申买价、申卖

一份外盘期货历史高频tick数据,涵盖能源、贵金属、股指等主要品种的逐笔成交与盘口快照。每条记录包含精确至毫秒的时间戳、合约代码、成交价格、成交量以及主动买卖方向标识。同时提供该时刻的最优申买价、申卖价及对应挂单量,用于还原盘口深度变化,数据时间覆盖连续的多个交易日。 数据源:CMES金融数据库

<input>, <textarea>, <slider>到底是干什么的?使用场景是什么?底层原理是什么?

input>用于接收单行文本输入,适用于简短的信息收集。提供了更大的空间,适合需要输入多行文本的情况。则是一个视觉化的数值选择工具,非常适合让用户选择范围内的值。通过这三个组件,我们可以轻松地让微信小程序与用户进行交互,收集他们的意见、设置参数或者只是让他们表达自己。

长风破浪会有时的博客 451

树莓派CSI/DSI二合一接口深度玩法:同时驱动MIPI摄像头和屏幕的配置秘籍

本文详细解析了树莓派5上CSI/DSI二合一接口的深度玩法,提供了同时驱动MIPI摄像头和屏幕的完整配置秘籍。从硬件连接到软件设置,包括config.txt的优化配置,帮助用户充分利用树莓派5的双多功能接口,实现高效的双设备工作模式。

weixin_30687051的博客 573

保姆级教程:用NFS把群晖NAS的文件夹挂到Ubuntu 22.04上,实现文件无缝共享

本文提供了一份详细的教程,指导用户如何通过NFS协议将群晖NAS的文件夹挂载到Ubuntu 22.04系统上,实现文件的无缝共享。文章对比了NFS与SMB协议的性能差异,并提供了群晖端和Ubuntu端的配置指南、高级参数优化、自动挂载方案以及生产环境中的实战技巧,帮助用户提升文件共享效率和系统稳定性。

weixin_29213827的博客 405

CSS实现自定义滑动条(input),动态监听改变数值

有时候我们需要一个滑杆滑动,可以移动的同时,还能够获取到从小到大的数值,如图: 向后滑动值越大,能够做到实时监听。我的可能不是最优解决方案,仅供大家参考! 代码如下: 这是建立一个input元素,最小值为0,最大值为100,每次加1,默认值为10. 样式如下: input[type=“range”] { display: block; -webkit-appearance: none; bac...

眺望远方 2024

QGIS效率提升神器:qgis_mcp插件+VSCode联合工作流配置全解析

本文详细解析了如何通过配置qgis_mcp插件与VSCode的联合工作流,实现语音控制和代码自动化来大幅提升QGIS操作效率。该方案将自然语言交互与现代编辑器生态结合,为地理信息专业人士构建了智能、高效的全新工作模式,彻底改变传统GIS操作方式。

weixin_29228203的博客 190

sliderInput步长不生效?90%开发者忽略的3个关键参数,你踩坑了吗?

解决R Shiny sliderInput步长不生效问题,深入解析step、value与seq参数协同机制。适用于数值调控场景,精准控制滑块精度,提升交互体验。90%开发者忽略的关键细节,值得收藏。

SimSolve的博客 961

图解凸函数与凹函数:别再被数学定义搞晕了!

本文通过图解和生活化类比,深入浅出地解释了凸函数与凹函数的数学定义及其与日常直觉的差异。文章详细介绍了凸函数的图像特征、数学定义(包括二阶导数判断)、在机器学习中的重要性,以及常见误区和实际应用中的判断技巧,帮助读者彻底理解这一关键数学概念。

weixin_29159441的博客 654

Flowable多数据源实战:从配置到指定Schema的避坑指南

本文详细介绍了Flowable多数据源配置的实战指南,包括基础配置、数据源Bean创建、指定Schema的进阶配置以及常见问题排查。通过具体代码示例和避坑建议,帮助开发者高效实现多租户系统中的工作流引擎集成,特别强调了schema设置和事务管理的注意事项。

weixin_30824599的博客 486

HTML5滑块(Slider)

这个简单的滑块组件使用 HTML5 和 JavaScript 实现了用户友好的数值选择体验。可以根据需求进一步扩展功能,例如添加样式、限制数值范围或结合其他表单元素。

王偃飞的博客 2675

RockChip Android14 修改LCD背光最大值

在调试LCD屏时时长会出现硬件不匹配,导致电流过大,屏幕发热严重。在不调整硬件的情况下,我们可以通过修改软件,降低LCD背光最大值来实现适配。我们都知道LCD屏背光是靠pwm来控制,一般来说最大值可以设置为255,针对上述问题,我们可以通过软件来降低该值,比如200,100等等。

qq_34968572的博客 631

React Dropdown Tree Select 项目教程

React Dropdown Tree Select 项目教程 1. 项目介绍 React Dropdown Tree Select 是一个轻量级、可访问、可定制且快速的 React 组件,用于渲染一个可以显示分层树数据的下拉选择组件。该组件不仅支持显示选择项,还支持在标签中显示选择,并允许用户搜索选项以进行快速过滤和选择。此外,它还支持显示部分选中的节点。 2. 项目快速启动 安装 你可以通过 ...

gitblog_00072的博客 844

论文阅读:2024 ACM CCS “Do Anything Now”: Characterizing and Evaluating In-The-Wild Jailbreak Prompts on

大语言模型(LLMs)的滥用问题引起了公众和大语言模型供应商的高度关注。有一种特殊的对抗性提示,叫做越狱提示,它已成为绕过防护措施、让大语言模型生成有害内容的主要攻击手段。在这篇论文中,作者使用新框架JailbreakHub,对2022年12月至2023年12月期间的1405个越狱提示进行了全面分析。作者识别出131个越狱提示社区,发现了越狱提示的独特特征以及主要攻击策略,比如提示注入和权限提升。

CSPhD-winston的博客 1411

YOLO模型轻量化实战:剪枝、量化与知识蒸馏三大技术落地详解

这篇文章结合我自己的实战经验,从原理、操作、效果、避坑四个方面,给大家讲清楚了YOLO模型轻量化的三大核心技术:剪枝、量化、知识蒸馏。先明确应用场景,再选择合适的技术组合,不要盲目追求极致压缩,要在“大小、速度、精度”之间找平衡。实战才是最好的学习方式——大家可以先拿自己的数据集试试剪枝和量化,感受一下效果,有问题可以在评论区留言。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 592

slider与input联动效果

应用场景 代码 // template 中 <el-input-number :max="400" :min="0" @change="numberChange" v-model="valueNew[0]" ></el-input-number> <!-- show-stops --> <el-slider v-model="value" range></el-slider&gt

webDevelopSnail的博客 1601

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

自定义(滑动条)input[type="range"]样式

这是我的第一篇博文,也是我这个小白努力的起点。刚接触JavaScript没多久,如果文中有错误的地方欢迎大家指正,或者给予建议,让我能逐渐向大牛靠拢。今天这篇文章给大家带来的是关于美化Slider Bar的相关内容。Range是HTML5中新出现的滑块控件,也是常见的控件的之一,不过这个控件的原始样式略丑,所以想对它进行一些改造。需要注意的是Internet Explorer 9及更早IE版本并不支

清风的博客 13万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【转】input输入框的各种样式

输入框景背景透明:<input style="background:transparent;border:1px solid #ffffff"> 鼠标划过输入框,输入框背景色变色:<INPUT value="Type here" NAME="user_pass" TYPE="text" SIZE="29" onmouseover="this.style.borderColor=...

weixin_30821731的博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

input标签的按钮效果

https://codepen.io/anon/pen/EOPMNy <div class="row"> <p>Click every input.</p></div><div class="row"> <span> <input class="basic-slide" id="name" type="...

weixin_30294709的博客 1361

swiper上每个slide都有一个input或者textarea标签,IOS键盘或安卓手机键盘点击下一步,会出现两个swiper混在一个屏幕上

以IOS为例,如下图点击下一步,会出现如图2 的现象,之前就遇到过这个问题,换了一种方式改好了,但是设计非得用左右滑动,左右滑动目前做过的只有swiper好一点,就用了这个插件,但是插件总会有各种各样的适配问题,这不就出现了这个适配问题,此问题之一。 找了一上午的解决方法,一直都没有解决,下午同事提了一个醒,让其他的swiper中的textarea不起效,那就是属性disabled的来了,代码大

qinyuhua93的博客 3161
上一篇: trainControl设置不当导致模型过拟合?教你4步精准配置交叉验证
下一篇: pheatmap热图颜色怎么调才科学?数据科学家亲授配色与聚类优化策略
ByteChat
博客等级 码龄1年 157粉丝 1991原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值