Vellum —— Vellum Solver

Vellum Solver 核心参数全解:从基础迭代到高级碰撞的实战调优 本文深入解析Vellum Solver核心参数,从基础迭代到高级碰撞处理,提供实战调优指南。通过详细参数解释和案例演示,帮助用户掌握布料、毛发等柔性物体模拟的关键技巧,提升影视特效和游戏开发中的物理模拟效果。 阅读详情
AI摘要

本文深入解析Houdini中Vellum Solver SOP的核心机制,涵盖子步(Substeps)、约束迭代(Constraint Iterations)、碰撞检测(Collision Passes)、力场控制(Forces)及高级特性如多遍求解(Multi-Pass Solve)、休眠(Sleeping)、颗粒/流体模拟(Grain/Fluids),并说明Minimal Solver适用场景与OpenCL加速优化。重点聚焦物理仿真稳定性、收敛性与性能权衡。

目录

Solver

Collision

Forces

Advanced

Secondary Constraint Pass

Multi-Pass Solve

Motion

Sleeping

Grain Collisions 

Fluids

Minimal Solver


        Vellum Solver SOP是DOP的封装,以简化vellum的解算;第一个端口是geometry,第二个端口是相同点数的且点对点(点号或id)的约束;第三个端口是碰撞体,碰撞体的拓扑结构应不变;另外,还可识别一些packed的几何体类型;还可在节点内,添加force、constraint property等节点;

Solver

  • Substeps,对快速运动或突然的力,应增加此值;如vellum太拉伸,增加到2或5是个好的开始;
  • Constraint Iterations,每子步内执行的迭代数,非常刚性的约束要求更多的迭代来收敛;最远点间的边数,是好的起点;
  • Smooth Iterations,默认约束迭代使用Gauss-Seidel方式(收敛快),但由于刚性太高或不可能的配置会无法完全收敛;此迭代使用Jacobi方式(收敛慢),误差会均匀分布;

Collision

  • Collision Passes,执行的碰撞检测数,在约束迭代间交替执行;因为碰撞代价高,最好最小化;
  • Post Collision Passes,所有约束被执行后,最后的碰撞检测;“number of stacked layers + 2” 是很好,可完全传播堆叠层;
  • Polish Passes,在任何碰撞过程中,可能无法完全解析,额外的碰撞将运行(非常便宜);
  • Layer Shock,整数点属性layer标记为不同的层,层越高越轻;

Forces

  • Velocity Damping,直接缩放速度,可快速阻尼;

Advanced

  • Target,pin约束的目标路径;
  • Integration,一阶对弯曲运动会被约束阻尼,二阶可恢复更多的弯曲运动,保持更多能量;但有时碰撞被检测,会退回到一阶,以避免过度弹跳;
Secondary Constraint Pass
  • 单独解算更新的次要约束,否则在主pass内解析;
  • 对一些昂贵的约束,可低频率解算以提高性能,如低弯曲刚性的丝绸,可低频率解算弯曲约束;
  • 对约束拓扑内频率变化的(会导致解算器重排序约束解算,抖动),如四面体有机组织stitch在一起滑动,由于滑动约束变化,四面体可能会轻微抖动,可将stitch约束移到此pass,设置Solve Frequency为1,保持相同刚性,会消除此种抖动;
Multi-Pass Solve
  • 重复子步直到条件满足;
  • 当前条件会修复由禁用点引起的问题,禁用点导致几何体被捕获和导致未禁用点生成拉伸;由于碰撞优先于约束,结果是布料或头发拉伸;如检测到拉伸过大,与自动禁用点相邻的点将被禁用;然后重复解算,以期望free几何体;
  • notconverged(detail),disableself,disableexternal;

Collision

  • Disable Failed Collisions,点碰撞失败后,会被标记为禁用,从而可无碰撞移动;
  • Reset Collided Points,如点被检测到不再tangled状态并连接到非禁用点,将重新激活,如disableexternal=2;
  • Initialize Overlap Distances,创建overlap_self、overlap_external属性(如存在将不会初始化),初始解算避免重叠;
  • Update Overlap Distances,更新overlap_self、overlap_external属性,以反映当前配置;
  • Tetrahedral Open Faces,四面体非共享面将生成碰撞几何体,如同时使用triangle shell 和 tetrahedral mesh,则此操作多余;
Motion
  • Max Acceleration,加速度限制避免过于服从非现实的力;
  • Fallback to First Order Integration on Collision,如点超过最大加速度,二阶预测可能错误,通常为反弹;
    • Grain/Fluid粒子总是会考虑退回一阶,不仅仅是碰撞情况下;
  • Limit Acceleration in Velocity Update,限制速度;
  • Limit Displacement on Collision,在碰撞时限制粒子移动;
  • Disable Broken Welds,当断开焊接点时,如表面没有分离,可能会爆开,此选项设置disableself属性,避免自碰撞;可能使分层布料穿插;
  • Normalize Stress,归一化应力计算,以便子步的更改,计算的值更加可预测;

  • Breaking Frequency,测试约束断开,断开约束会改变拓扑,会减慢解算;

  • Sliding Method,attach、stitch滑动的模式;

    • Closest Point速度快但会跳过凹陷, 

    • Traverse Polygons速度慢会处理凹陷;

    • Traverse Triangles(Optimized)比上一个快很多倍,但仅适用于三角形目标;

Sleeping
  • 粒子速度小于阈值,达到指定长的时间,即会停止(stopped=1);
  • 再次唤醒粒子,可使用POP Awaken节点;
Grain Collisions 
  • grain使用单独的碰撞pass,来处理grain间的碰撞,与POP Grains类似;
    • Search Scale,粒子pscale的缩放值,用于搜索范围;也影响在打簇内的吸引力范围;
    • Max Neighbors,搜索范围内的最大粒子数,如勾选OpenCL Neighbor Search参数(考虑所有范围内的点),则此参数忽略;
    • Assume Uniform Radius,pscale属性确定每粒子的半径,如所有粒子半径相同,则更快的用于查找邻居;
    • Ignore Neighbors with Same Name or Piece,忽略具有相同非空name属性或非负piece属性的邻居;可创建仅与其他簇交互的单独簇,通常与‘shape match约束’结合使用,以获得刚性;
    • Enable Constraint Averaging,当多个粒子同时碰撞时,平均化所有约束,以确保稳定;
    • Repulsion Weight,粒子碰撞力的权重,值为0粒子不碰撞;repulsionweight点属性缩放;
    • Attraction Weight,粒子粘连在一起的权重,值为0粒子不打簇;attractionweight点属性缩放;
    • Enable Mass Shock,根据粒子相对重力的位置,缩放粒子的质量;更高的粒子更轻,以使堆叠的粒子快速收敛,更稳定;
    • Shock Scaling Power,缩放量,值越高粒子间对比就越高,过高的值会使高粒子非常轻,会使系统不稳定;
    • Shock Axis,堆叠方向,通常与重力相反;
Fluids
  • 使用density约束,来保持流体不可压缩性,且提供viscosity、surface tension;phase属性非零;
    • Kernel Radius Scale,内核半径缩放,影响由表面张力产生的水滴大小;
    • Viscosity,粘度,与viscosity属性相乘;对不同phase值的粒子,粘性会独立解析;
    • SDF Collision Viscosity,与SDF碰撞接触的流体粘度,仅当Enable Minimal Solver时才有效;
    • Viscosity Solver,执行粘度解算的类型,Explicit快但不稳定(对高粒子数、高粘度,或低子步),Implicit慢但稳定(对高粒子数和粘度值);
    • Viscosity Tolerance,使用Implicit时的粘度容差,越低精度越高(更多迭代);
    • Max Viscosity Iterations,使用Implicit时的最大迭代数;
    • Surface Tension,表面张力,值越高会减低曲率,以形成水滴;与surfacetension属性相乘,对不同phase值的粒子,张力会独立解析;
    • Spatial Sort Interval,grain、fluid会执行许多涉及附近点的计算,通常空间中附近的点在内存中也靠近会大大的提高性能,此选项时按指定间隔帧对粒子排序;

      • 排序会改变点号,应在解算前添加id属性;

Minimal Solver
  • 被限制的解算器版本(被vellum brush使用),允许布料和其他柔体,与静态几何体快速交互;不适用于动态碰撞体,不建议用户使用;

OpenCL

  • OpenCL Graph Coloring,使用快速并行的OpenCL算法,对四面体可能需要多十倍的内存;
  • OpenCL Neighbor Search,使用OpenCL搜索grain、fluid邻居,比CPU更快,但可能使用更多的内存;

案例:VellumSmokeSheet(使用vellum作为碰撞体生成的速度场,来驱动vellum)

Houdini Vellum Solver SOP保姆级配置指南:从布料解算到颗粒碰撞,一次讲清所有参数 本文深入解析Houdini Vellum Solver SOP的配置技巧,涵盖布料解算、颗粒碰撞及流体模拟等核心参数设置。通过实战案例和优化公式,帮助用户掌握Constraint Iterations与Solver Substeps的平衡策略,解决工业级模拟中的常见问题,提升Vellum解算效率与质量。 阅读详情

相关推荐

Houdini Vellum Solver SOP保姆级配置指南:从布料解算到粒子碰撞,一次讲清所有参数

直到资深TD扔给我一句:"把Constraint Iterations调到30,Smooth Iterations加5,再去调碰撞层数",问题立刻解决——这让我意识到,某生物特效项目中,切换此选项后,皮肤滑动时的抖动问题立刻消失,解算时间还缩短了15%。,不仅解决了卡顿问题,布料间的滑动反而更真实——这是因为过高的碰撞精度会导致微观抖动累积。后,30cm高的雪堆能在5秒内自然沉降成型,而传统方法需要反复调整外力场。当看到布料像橡皮筋一样无限拉伸时,90%的情况是迭代设置出了问题。

俺是一个瓜娃!!! 617

告别卡顿!用Vellum Solver的‘Minimal Solver’与‘Sleeping’功能为你的Houdini实时笔刷交互提速

本文深入解析Houdini中Vellum Solver的'Minimal Solver'与'Sleeping'功能,帮助艺术家解决布料模拟卡顿问题。通过精简计算流程和智能休眠机制,显著提升实时交互性能,特别适合服装设计和柔体动力学创作。文章提供详细参数设置和实战技巧,助您优化工作流程。

weixin_28559803的博客 288

Houdini Vellum Solver SOP保姆级配置指南:从布料解算到流体模拟,这些参数你真的调对了吗?

本文深入解析Houdini Vellum Solver SOP的核心参数配置,从布料解算到流体模拟,提供工业级优化方案。通过剖析子步与迭代的黄金比例、碰撞处理技巧及高级约束控制,帮助特效师精准调参,避免常见问题如拉伸、穿透等,显著提升动态效果的真实感与性能。

weixin_34233974的博客 380

翻译Houdini官方文档:Vellum Constraints 节点

前言 Vellum Constraints 有 SOP 和 DOP 两个版本。不过参数内容上几乎一样,只有少许差异。因此我将参数部分相同的部分放在前面,差异部分放在后面。 介绍 SOP : Vellum Constraints SOP 节点为Vellum解算器从合适的输入几何体创建约束。 所有的vellum材质类型,例如布料、头发、软体,都被描述为顶点之间一组显式的约束。用于显示与碰撞的几何体是第一个输入与输出,约束几何体是第二个输入与输出。这两个几何体应该有一一对应的顶点关系,因此大多数Vellum节点通

主要记录了工作之余胡乱学习的知识,大部分是入门级别的内容。 主要是为了自己未来有用到时能快速上手,相当于是个备忘录。 当然,也很开心其他人可以从中找到对自己有用的信息。^_^ 9070

Houdini Vellum Solver SOP保姆级配置指南:从布料撕裂到流体模拟,这些参数你真的调对了吗?

本文深入解析Houdini Vellum Solver SOP的核心参数配置,涵盖布料撕裂、颗粒堆叠和流体模拟等多材质交互场景。通过实战案例揭示Substeps与Iterations的联动法则,提供碰撞精控、动力学优化及性能调优的专业技巧,帮助特效师快速实现影视级物理模拟效果。

weixin_28487433的博客 233

Houdini Vellum Solver SOP保姆级配置指南:从布料解算到流体模拟的完整参数解析

本文深入解析Houdini中Vellum Solver SOP的核心参数配置,从布料解算到流体模拟的完整参数优化策略。通过详细讲解子步与迭代、解算方法选择、碰撞处理及高级约束技巧,帮助特效师掌握物理模拟的精髓,提升数字特效制作的效率与质量。

weixin_28630185的博客 365

笔记 SideFX官方Vellum模块精讲Vellum Nodes

使用group,选出需要固定的点集,然后加到vellum cloth的 pin point section。设置风,方便观察:在vellum solver 里面添加pop wind。数值高时,不会拉伸。: 控制布料拉伸的长度。

payforcold7的博客 371

别再乱调参数了!深入理解Houdini Vellum Solver的底层逻辑:约束、碰撞与迭代

本文深入解析Houdini Vellum Solver的底层逻辑,揭示约束系统、碰撞检测与动力学积分的精密机制。通过对比Gauss-Seidel与Jacobi迭代的差异,详解多阶段碰撞流程和智能容错策略,帮助用户从根源解决布料抖动、穿透等常见问题,实现高效精准的柔体模拟。掌握这些核心原理,可大幅提升Vellum Solver的调试效率。

weixin_28559803的博客 254

Vellum —— 简介

简介;

NapoleonCoder的博客 1982

别再只用Vellum做布料了!解锁颗粒流体与动态碰撞的隐藏玩法(以烟雾驱动薄片为例)

本文深入探讨了Vellum Solver在Houdini中的高级应用,从布料模拟扩展到颗粒流体与动态碰撞的创意实践。通过详细的参数解析和实战案例,展示了如何利用Vellum构建烟雾驱动薄片的动力学系统,揭示其在约束稳定性和交互控制方面的独特优势。

weixin_42522009的博客 347

【保姆级教程】不到一元32位芯片 DIY迷你时钟

基于不到一元的CH32V003F4P9芯片制作的迷你多功能时钟。

twen51的博客 1813

vellum 学习 (定时更新1/12)

vellum学习 文章目录vellum学习前言二、遇到的问题1.结算慢2.怎么忽略碰撞3.新节点学习4.节点参数解释重要的2个参数总结 前言 场景转布料学习Staring 布料 材质:丝绸/牛仔/皮革 区别:软 ,褶皱小/ 褶皱锋利 /橡胶相比牛仔更软。 1.丝绸 厚度 0.001 bend 0.0001 刚度压缩 100000(保留皱纹)、 2.牛仔 褶皱锋利:——可以通过bend plasticity变形 (只要弯曲低于值域,马上硬化形成锋利的边) 3.皮革 因

JACKLONGFX的博客 4228

如何利用CANoe在两路CAN通道之间创建网关(gateway)

CANoe网关,利用CAPL实现CAN转发

Richy_Lai的博客 7895

vellum (Discovering Houdini VellumⅡ柔体系统)学习笔记

视频地址:p=3&spm_id_from=pageDriver&vd_source=044ee2998086c02fedb124921a28c963(搬运)

JACKLONGFX的博客 848

每天10分钟,混剪视频Agent产出50条爆款,单月变现6位数(喂饭级教程)

混剪视频是指将多个视频片段、图片或音频素材进行剪辑组合,创造出新的视频内容。随着Coze上线联动剪映功能,混剪视频制作正在进入自动化时代,为创作者带来巨大便利。高效自动化处理:AI可以自动完成琐碎的剪辑工作,让创作者省下大量时间专注于项目策划和创意。批量素材产出:特别适用于抖音、小红书和视频号等平台上的养生、科普、心理、疗愈等垂直领域,可以自动化批量生产图片和视频素材。引流获客:通过优质内容吸引目标受众知识变现:通过教学传授技术工具变现:将搭建好的工作流作为产品销售。

汤师爷的博客 864

【STC32G12K128开发板】——从零到一:Keil C251开发环境全攻略

本文详细介绍了为STC32G12K128开发板搭建Keil C251开发环境的完整流程。从环境准备、软件安装、驱动配置到创建第一个工程并下载程序,提供了避坑指南和实用技巧,帮助开发者高效入门这款基于251内核的国产32位单片机开发。

weixin_29192141的博客 363

告别卡顿!用Vellum Minimal Solver和OpenCL加速你的Houdini柔体笔刷交互

本文详细介绍了如何利用Houdini中的Vellum Minimal Solver和OpenCL加速技术优化柔体笔刷交互体验。通过对比完整版Vellum Solver,Minimal Solver在实时交互场景下展现出3-5倍的性能提升,特别适合服装褶皱雕刻和生物体表细节调整。结合OpenCL加速,可进一步实现4倍以上的计算效率提升,为3D艺术家提供流畅的创作体验。

chenqiaodezhi57164的博客 304

软件工程导论考试通关秘籍:太原理工大学历年真题解析(附答案)

本文为太原理工大学《软件工程导论》考试提供高效备考指南,通过解析近六年真题,揭示高频考点如软件生命周期、UML建模和结构化设计等核心模块的命题规律。文章提供真题拆解、实战策略和避坑指南,帮助考生掌握图形转换题和简答题的应答技巧,助力考试通关。

weixin_29233333的博客 227

Houdini Vellum Solver保姆级参数详解:从Constraint Iterations到Grain Collisions,新手避坑指南

本文深入解析Houdini Vellum Solver的核心参数,包括Constraint Iterations、Substeps和Grain Collisions等关键设置,提供从基础到实战的调优指南。通过详细的技术分析和实用技巧,帮助用户掌握布料、毛发和颗粒模拟的高效解算方法,避免常见陷阱并优化性能。

weixin_34233974的博客 257

SAP ABAP 获取采购订单未清数量/在途库存的 6 种方式

这篇文章我总结了获取采购订单未清数量/在途库存的 6 种方式,每种方式的优劣势和适用场景有所不同。读者请结合自身需要选择。

SAP李斌,本人承诺所有原创文章均不使用任何AI生成技术,请大家放心阅读。 2658

2026年03月CCF-GESP编程能力等级认证C++编程一级真题解析

本文收录于专栏《。订阅后可阅读专栏内所有文章。

人生就是一个不断学习的过程 337

用Vellum Solver玩转Houdini特效:从飘动布料到沙粒流体,一个节点搞定多种动态

本文深入解析Houdini中的Vellum Solver工具,展示其如何通过统一框架高效处理布料、颗粒和流体等多种物理特效。从丝绸飘动到沙粒模拟,再到粘稠流体控制,Vellum Solver的模块化设计和智能算法为特效艺术家提供了前所未有的创作自由与效率提升。

weixin_33960567的博客 347

YOLOv8/v9工业零件缺陷检测实战指南:从原理到产线部署

摘要:本文系统介绍基于YOLOv8/v9的工业零件缺陷检测技术,从工业质检背景与需求出发,详解缺陷检测原理、算法构建与模型训练,提供从数据集准备到移动端部署的全流程实操方案。包含多尺度检测、纹理分析等高级技术,适配工业相机的环境优化策略,以及完整质检系统代码实现。适合工业视觉领域新手与进阶开发者,助力快速构建高鲁棒性的缺陷检测系统。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1304

Houdili基础学习-Vellum

PBD,XPBD。

2301_77715708的博客 232

深度学习工具包 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")

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Houdini 布料模拟

PlanarPatch生成布料基础模型,VellumCloth定义布料物理属性,VellumSolver执行真实物理模拟,实现柔软、褶皱与受力效果。模拟后通过VellumPost-Process进行后处理,平滑表面、细分网格,优化视觉效果。结合点光标选择控制点,可精准调整布料形态,提升模拟真实感与可控性。

UE星空 243

Devexpress16.2.6破解工具

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

Houdini学习路线推荐 (偏程序化)

的软件,对初学者而言非常反直觉,这些节点可以被分为多个不同的网络或模块,基本上可以说学习不同模块下的各个节点的过程就是学习 Houdini 的过程。PS:下面给出的基本都是特效方面用的比较多的,大部分都是 Solver动态 + 物理演算的,与程序化关系不能说不大,作为 Houdini 的特色也是非常有用的。PS:本人本来打算深入学习程序化的但是中途断了,不过也算出初步探索了Houdini的学习路线,下面都是我学习过程真理的资料连接,仅供参考。PS:地编也是 Houdini 的强项,但是我了解的不多...

明阳 214

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: Vellum —— SOP|Nodes
下一篇: Vellum —— Fluid
挨代码
博客等级 码龄5年 1696粉丝 384原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值