安全编码实践:什么是安全编码标准?

行业认证标准:CERT安全编码标准由软件工程学院(SEI)开发 什么是CERT? CERT安全编码标准是由软件工程学院(SEI)开发的,适用于多种语言,其目的是通过避免对安全性问题更敏感的编码结构来加强您的代码。 在CERT编码框架中,将优先级计算为三个因素(严重性,有人利用此漏洞的可能性和补救成本)的乘积,并分为以下级别:L1,L2和L3。L1表示严重程度较高的违规事件,可能性很高且修复成本较低(即最重要的是要解决,因为它们表明严重的问题并不容易解决)。使用CERT的评分框架可为集中精力和使团队充分利用其时间预算提供极大帮助。 通过静态分析加强CERT C/ 阅读详情

安全编码实践和安全编码标准至关重要,因为高达90%的软件安全问题是由编码错误引起的。

在这里,我们将阐释什么是安全编码标准,哪些是您应该执行的安全编码实践,以及如何实施安全标准。

您的安全编码标准指南

本文将包含如下几个部分:

  • 什么是安全软件?
  • 为什么软件安全很重要?
  • 如何运用安全编码标准?
  • 什么是安全编码标准?
    • CWE and CWE Top 25
    • CERT
    • CVE
    • NVD
    • DISA STIG
    • OWASP and OWASP Top 10
    • PA-DSS
    • IEC 62443

什么是安全软件?

安全软件是指即使受到恶意攻击也能继续正常运行的软件。

通过下述方法可以帮助确保软件的安全:

  • 管理访问控制
  • 提供数据保护
  • 防范病毒和其他网络安全漏洞

安全软件的一个重要组成部分是安全编码和使用恰当的软件安全工具,如静态应用安全扫描工具(简称SAST)。

为什么软件安全很重要?

软件安全非常重要,因为它有助于确保软件能够防范潜在漏洞、错误或缺陷。这种防御的关键部分是使用安全编码标准。而且,安全编码适用于每个开发团队,无论它是针对移动设备、个人计算机、服务器还是嵌入式设备的代码。

什么是安全编码标准?

安全编码标准是用于防止安全漏洞的规则和指南。通过有效地使用这些安全标准,可以防止、检测和消除可能损害软件安全的错误。

在这里,我们将介绍关键的安全编码标准。

CWE and CWE Top 25

CWE(Common Weakness Enumeration)是软硬件中的软件安全缺陷列表,其中包括编程语言C, C++和Java。该列表是根据CWE社区的反馈编制的。此外,CWE Top 25是可能导致严重软件漏洞的最普遍、最关键缺陷的弱点的集合。

CERT

CERT编码标准支持常用的编程语言,如C, C++和Java。此外,对于安全编码标准中包含的每个指南,都有一个风险评估,以帮助确定违反该特定规则或建议的可能后果。

CVE

CVE是在特定软件产品中发现的网络安全漏洞和暴露列表。该列表链接了来自几个不同漏洞数据库的信息,用户可以更容易地比较安全工具和服务。

NVD

NVD是美国政府基于标准的漏洞管理数据存储库,它与CVE列表相连接并提供附加内容,包括如何修复漏洞、严重度评分和影响评级。为了计算严重度分数,必须使用CVSS系统(Common Vulnerability Scoring System)。

CVSS是一种用于评估软件漏洞严重程度的开放行业标准。对于每个漏洞,都会分配一个严重度分数。

DISA STIG

DISA是一个作战支持机构,向所有为美国国防部(DoD)工作的机构和个人提供信息技术(IT)和通信支持。它监督组织、传递和管理国防相关信息的IT和技术方面。这包括STIG指南,提供了组织应该如何处理和管理安全软件和系统的指南。

OWASP and OWASP Top 10

OWASP是一个国际非营利组织,指导软件开发团队如何构思、开发、获取、操作和维护安全的应用程序。此外,OWASP Top 10是一份关于最重要的十大web应用和API安全风险的年度报告。

PA-DSS

PA-DSS是一种国际安全标准,适用于支付应用软件的开发。

IEC 62443

IEC 62443是一套安全标准,用于保护工业网络免受网络安全的威胁。这套安全标准提供了一套既全面又系统的网络安全建议。

该标准使用安全级别(SL)来准确度量风险。

如何运用安全编码标准?

确保编码安全的最佳方法是使用静态代码分析工具。

静态代码分析工具执行编码规则、安全标准,并标记违反安全的行为。Helix QAC和Klocwork都配备了代码安全模块,以确保软件的安全。

每个工具都包括:

  • 对完全文档化的规则的执行和结果解释。
  • 丰富的示例代码。
  • 完全可配置的测试规则。
  • 安全审计的合规报告。

Perforce SAST工具如何帮助执行安全编码标准

Klocwork和Helix QAC是最受信任的支持C, C++, C#, Java, JavaScript和Python语言的SAST工具,因为它可以帮助您确保代码的安全。立即注册免费试用吧。

“原创内容,转载请标明出处”

【如何进行安全编码】 什么是黑客?什么是黑客?这个问题让人值得思考,黑客就是玩玩圈子,录教程收徒玩网恋?赚钱建站玩空间?还是一群技术狂人?或者说是一些行走于。 阅读详情

相关推荐

MISRA C++ 2023新标准解析:嵌入式C++安全编码的现代实践

在嵌入式系统与安全关键软件开发领域,编码标准是确保软件可靠性与安全性的基石。其核心原理在于通过约束编程语言的自由度,消除未定义行为与实现定义行为带来的不确定性,从而在源头上预防缺陷。这类标准的技术价值在于为汽车电子、航空航天、医疗设备等高可靠性行业提供了可验证、可审计的工程实践框架,是实现功能安全认证的关键环节。随着C++语言的现代化演进,从C++11到C++17的新特性(如自动类型推导、智能指针、移动语义)为提升开发效率与代码质量带来了新机遇,但也引入了新的合规性挑战。MISRA C++ 2023应运而生

weixin_28687807的博客 624

每个开发人员都应该知道的 10 大安全编码实践

所以你有它。这是每个开发人员都应该知道的十种安全编码实践。它们一起可以减少错误并保护你的系统免受恶意活动的侵害。通过遵循这些约定,你可以帮助确保代码安全、保护你的公司并减少被攻击者利用的机会。

yz_weixiao的博客 635

MISRA C 1998规则深度解析:嵌入式安全编码的基石与实战避坑指南

在嵌入式系统与汽车电子等安全关键领域,编码规范是确保软件可靠性的核心基础。MISRA C作为行业广泛认可的安全编码标准,其核心原理在于通过限制C语言中易错、未定义或实现定义的行为,来提升代码的可预测性、可维护性与静态分析能力。这一规范的技术价值在于为资源受限、长期维护的嵌入式项目提供了系统性的缺陷预防框架,能有效规避内存错误、数据溢出等常见风险。其应用场景广泛覆盖汽车电子控制、工业控制及高可靠性嵌入式软件开发。本文聚焦于MISRA C:1998这一奠基版本,针对**遗产代码维护**与**嵌入式安全**的实际

weixin_34242331的博客 431

JAVA安全编码规范

Java安全编码规范-1.0.6 by k4n5ha0 Java安全编码规范-1.0.6 by k4n5ha0 编写依据与参考文件: 1.《信息安全技术 应用软件安全编程指南》(国标 GBT38674-2020) 2.《Common Weakness Enumeration》 - 国际通用计算机软件缺陷字典 3.《OWASP Top 10 2017》 - 2017年十大Web 应用程序安全风险 4.《fortify - 代码审计规则》

Websec 8944

MISRA C、CERT C、CWE、C Secure四大安全编码规范及QAC落地实践

在嵌入式软件与系统底层开发中,C语言的高自由度在带来灵活性的同时,也埋下了可靠性隐患。未定义行为、缓冲区溢出与整数回绕等问题单靠个人经验难以系统性规避,由此催生了各类编码规范。MISRA C致力于约束语言特性以保证程序行为可预测,CERT C站在攻击者视角消除可利用缺陷,CWE为软件弱点提供统一的编号体系,C Secure则推动安全编码规则走向国际标准。它们看似相似,实则覆盖职责不同,互为纵深防线。工程实践中,借助Perforce QAC等静态分析工具,可以围绕MISRA C、CERT C、CWE与C Se

weixin_29166013的博客 217

MISRA C:1998嵌入式安全编码规范详解与实战指南

在嵌入式系统开发中,编码规范是确保软件可靠性和安全性的基础。通过定义明确的编程规则,可以约束C语言中易导致未定义行为和运行时错误的特性,从而提升代码的健壮性和可维护性。其核心原理在于通过静态分析和强制规则,在编译阶段预防潜在缺陷,降低系统风险。这一技术价值在汽车电子、航空航天等高安全要求领域尤为突出,能够显著减少调试成本并提高长期维护效率。应用场景涵盖从工业控制到医疗设备等对确定性有严格要求的实时系统。本文聚焦MISRA C:1998规范,深入解析其规则分类、核心安全理念及实战示例,特别针对整型提升和浮点数

weixin_30520015的博客 410

软件开发中的代码安全编码规范:从标准到实践的全面指南

安全编码是软件开发中不可或缺的环节,它不仅能够预防安全漏洞,还能提高代码质量、可维护性和系统稳定性。通过遵循安全编码规范,采用最佳实践,并利用合适的工具,开发团队可以显著降低安全风险,构建更安全、更可靠的软件系统。记住,安全不是一次性的工作,而是一个持续的过程。随着新技术的出现和攻击手段的演变,安全编码规范也需要不断更新和改进。只有将安全编码融入开发文化的每一个环节,才能真正构建出安全可靠的软件产品。

jie_kou的博客 1066

安全编码规范大全:提升软件工程质量的黄金法则

在数据泄露、勒索攻击频发的数字时代,软件安全已从“可选增强项”变为“生存必需品”。本文将系统梳理安全编码的核心规范,通过生活化比喻、代码示例和真实案例,帮助开发者理解“为什么需要安全编码”“如何落地具体规范”“如何构建团队级安全防护网”。无论你是初级开发者还是技术负责人,都能从中获得可操作的实践指南。2023年,某知名电商平台因用户地址输入字段未做长度限制,攻击者通过注入10万字符的恶意数据,导致数据库死锁,系统瘫痪12小时;同年,某医疗系统因日志中泄露了JWT令牌明文,造成50万患者隐私数据被窃取。

软件工程实践的博客 965

Cppcheck与安全编码标准:CWE与OWASP规则映射实践

在现代软件开发流程中,静态代码分析(Static Code Analysis, SCA)工具已成为安全编码标准落地的核心基础设施。Cppcheck作为一款专注于C/C++代码的开源静态分析工具,通过内置的缺陷检测引擎与可扩展规则体系,为开发团队提供了自动化的安全合规检查能力。本文将系统剖析Cppcheck如何实现与常见安全编码标准的映射,重点解析CWE(Common Weakness Enumer...

gitblog_01168的博客 1252

C语言安全编码实践:98条标准规则详解

常量是用来存储不会改变的值的一种变量类型,在多数编程语言中,常量通常是用特定的关键字来定义的。定义常量的主要目的是为了提高代码的可读性和维护性。在使用常量时,有以下几种场景:配置信息:系统配置参数通常不会在程序运行时改变,例如一个API的端口号或者超时时间。c// API的端口号// 超时时间数学常数:如π值、自然对数的底数e等。c用户界面元素:比如按钮ID、菜单项等。c业务规则相关的值:例如折扣比例、税率等。c// 20%的折扣。

weixin_34547628的博客 929

从内参矩阵到归一化平面:揭秘相机成像的标准化核心

本文深入解析了相机成像中的核心概念——归一化平面。通过拆解内参矩阵(包含焦距、主点等参数)的作用,详细阐述了如何将像素坐标转换为与具体相机硬件无关的归一化坐标。这一标准化过程是计算机视觉算法(如多相机系统对齐、视觉SLAM)实现跨设备通用性的关键,能有效提升算法的鲁棒性和泛化能力。

opencv7vision的博客 449

OWASP Cheat Sheet Series:10个安全编码标准和最佳实践终极指南

OWASP Cheat Sheet Series 是一个专注于应用安全的高价值信息集合,为开发者提供实用的安全编码标准和最佳实践。这个项目包含了从输入验证到云安全的全面指导,帮助开发团队构建更加安全的应用程序。😊 ## 什么是OWASP安全编码标准? **安全编码标准**是开发过程中必须遵守的一系列规则和规范,旨在预防常见的安全漏洞和攻击向量。通过遵循这些标准,开发团队能够在代码层面建立强大

gitblog_00681的博客 441

【eNSP 华为模拟器】单臂路由实战:从原理到配置全解析

本文详细解析了单臂路由技术,通过华为eNSP模拟器从原理到配置进行实战教学。文章阐述了单臂路由如何利用路由器单物理接口创建多个子接口,实现不同VLAN间通信,并提供了完整的操作步骤、配置命令及排错方法,帮助网络工程师掌握这一经典网络技术。

696

信息安全编码标准:使用SAST实施安全编码实践

当组织遵守信息安全编码最佳实践时,他们可以减少维护软件的成本,开发人员可以花更多的时间进行创新,而不是把时间花在bug修复上。SAST使用源代码中记录的细节,以及它的代码结构,以确保遵守安全的编码标准和指导方针。开发团队可以在开发过程开始时使用不同的安全编码标准和指南,如CERT安全编码标准和CWE,以确保软件满足一定的质量和安全需求。其目标是识别可能暴露软件漏洞的编码违规和弱点。当开发团队使用信息安全编码标准来开发软件时,通常希望更少的安全Bug和更好的代码质量,从而给用户带来健壮性更好的产品。

1893

Python在Windows环境下驱动乐视三合一摄像头的深度图像处理实践

本文详细介绍了在Windows系统下,使用Python驱动乐视三合一摄像头进行深度图像处理的完整实践流程。从环境配置、驱动安装、OpenNI与OpenCV库的部署,到深度与彩色数据流的读取、可视化、三维点云转换以及背景移除等应用开发,为开发者提供了从零开始掌握深度摄像头编程的实战指南。

gitlab7runner的博客 231

Centos7.9使用kubeadm部署K8S集群

使用kubeadm部署一个k8s集群,单master+2worker节点。

lldhsds的专栏 1300

Thorium 浏览器下载安装指南:指令集安装包怎么选,10 分钟用上更快的 Chromium

浏览器越开越卡?十几个标签一起掉帧,看在线视频还得先操心格式支不支持?**Thorium 浏览器**是基于 Chromium 最新 LTS 版构建的分叉,靠编译阶段的深度优化提速,并按 CPU 世代单独出包。这份指南带你从挑包到验收走完全程,不折腾,十分钟之内搞定。 [![Thorium 浏览器主界面,含主页按钮、书签栏与完整地址栏的完整截图](https://raw.gitcode.com/G

gitblog_00912的博客 251

避开这些坑!baostock获取股票数据时最容易犯的5个错误(Python实战)

本文针对使用Python和baostock库获取股票历史数据时常见的五大陷阱,提供了实战解决方案。重点剖析了登录状态验证、参数配置、数据解析、批量操作效率及数据一致性校验等关键环节,帮助开发者构建稳健高效的数据获取流程,避免因细节疏忽导致的数据错误或性能瓶颈。

websocket5live的博客 1439

list splice后迭代器失效?5分钟掌握底层机制与安全编码实践

掌握list splice的迭代器失效问题,深入解析其底层机制与安全编码实践。涵盖STL list拼接操作的应用场景、迭代器有效性规则及避免崩溃的关键技巧。理解splice为何不导致迭代器失效,提升代码稳定性,值得收藏。

FuncTide的博客 340

Winget安装失败:深入解析InternetOpenUrl()错误0x80072efd的根源与修复

本文深入解析了使用Winget时遇到的InternetOpenUrl()错误0x80072efd。该错误通常源于DNS解析失败、网络代理配置不当或系统安全策略冲突,导致无法连接软件源。文章提供了从刷新DNS、修改Hosts文件到配置代理等一套完整的诊断与修复方案,帮助开发者快速解决安装障碍,恢复Winget的正常使用。

weixin_29290259的博客 931

机器学习实战4-教育领域:学生成绩的可视化分析与成绩预测-详细分析

大家好,我是微学AI,今天给大家带来机器学习实战4-学生成绩的可视化分析与成绩预测,机器学习在教育中的应用具有很大的潜力,特别是在学生成绩的可视化分析与成绩预测方面。机器学习可以通过对学生的父母教育情况和学校表现等数据进行分析和挖掘,从而揭示潜在的学习模式和趋势。

微学AI的博客 7676

什么是应用程序安全性AppSec?应用安全 + 应用安全工具概述: 什么是应用安全 | 为什么应用安全很重要 | 应用安全最佳实践 | 应用安全左移安全性 | 应用安全编码标准

AppSec 是在硬件、软件和开发过程中在应用程序级别查找、修复和防止安全漏洞的过程。它包括对应用程序设计和开发以及整个生命周期(包括应用程序启动后)的措施的指导。具有强大应用程序安全性的组织认识到,AppSec不是一项单一的技术,而是一个持续的过程,涉及最佳实践和流程,旨在帮助预防和解决应用程序面临的网络威胁。许多组织使用服务和AppSec工具来加速应用程序开发,同时减少代码漏洞并防止网络安全风险。

Polelink北汇信息的博客 894

【施磊】C++课程笔记目录

【C++编程】施磊老师C++笔记目录

GeniusAng的博客 4122

如何使用安全代码防止网络安全威胁:什么是网络安全威胁 | 网络安全威胁多久发生一次 | 预防网络安全威胁的 3 个最佳实践 | 网络安全威胁的安全编码标准 | SAST 工具如何防止网络安全威胁

网络安全威胁无处不在。每年,网络攻击尝试的数量都在增加 ,并且变得越来越复杂。 这尤其令人不安,因为组织已经受到网络安全威胁的轰炸。 什么是网络安全威胁? 网络安全威胁是威胁破坏应用程序和业务的恶意攻击。网络安全威胁包括数据泄露、病毒和其他攻击。 网络安全威胁多久发生一次? 网络安全威胁每 39 秒发生一次 。 网络安全威胁是每个软件开发行业的主要关注点。因此,您必须采取适当的步骤来确保您的代码是安全的。这包括: • 了解最常见的网络安全威胁是什么。 • 采用安全编码最佳实践。 • 实施安全编码标准。

Polelink北汇信息的博客 898

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

终极指南:Go安全编码文化——团队推广安全开发理念的7个黄金法则

Go安全编码文化是保障Golang应用程序安全的核心基础,建立完善的安全开发理念能有效预防90%以上的常见安全漏洞。本文将分享7个经过实践验证的黄金法则,帮助开发团队系统性地构建安全编码文化,从根本上提升Go项目的安全性。 ## 1. 建立安全编码标准与规范 安全编码文化的首要任务是制定清晰的安全标准。团队应共同创建并维护一份全面的安全编码指南,明确规定各类安全实践的具体要求。 推荐参考项目

gitblog_00900的博客 857

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C语言strcmp模拟实现:底层内存契约与安全编码实践

字符串比较是C语言中最基础也最易被误解的核心操作,其本质是基于ASCII码值的字节级逐位比对。理解strcmp需从字符编码原理出发,明确其依赖内存连续布局、指针线性遍历及''终止约定三大前提;技术价值在于暴露C语言底层运行规则——如char符号性、整型提升、零扩展加载等关键机制;广泛应用于系统编程、嵌入式开发、协议解析等对性能与安全性要求严苛的场景。本文深入剖析标准行为、平台差异与工业级实现,重点覆盖unsigned char强制转换和空指针防护两大热词所涉核心实践。

weixin_34166472的博客 423

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 汽车安全不可避免的数字化转型
下一篇: 什么是误报?如何识别误报和漏报
Trinitytec
博客等级 码龄11年 165粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值