JavaScript-1

UDF学习(二)基础数据类型与常见宏 thread_loop_c (t,d) 必须与begin_c_loop (c,t)同时使用,但begin_c_loop (c,t)不一定与thread_loop_c (t,d)同时使用。同理thread_loop_f(t,d)必须与begin_f_loop (c,t)同时使用,但begin_f_loop (c,t)不一定与thread_loop_f(t,d)同时使用。begin_c_loop (c,t) 在计算域内对网格单元进行循环。c_face_loop (c,t)遍历网格单元上的所有网格面。 阅读详情

基础认知

认识 JavaScript

是什么?
	JavaScript是一种运行在客户端(浏览器)的编程语言,能够实现人机交互效果

做什么?
	网页特效(监听用户的一些行为,让网页做出对应的反馈)
	表单验证(针对表单数据的合法性进行判断)
	数据交互(获取后台的数据,渲染到前端)
	服务端编程(node.js)

JavaScript 组成

  • ECMAScrpt:规定了js基础语法核心知识(比如:变量、分支语句、循环语句、对象等)
  • Web APIs
    • DOM:操作文档(比如:对页面元素进行移动、添加、删除等操作)
    • BOM:操作浏览器(比如:页面弹窗、检测窗口宽度、存储数据到浏览器等等)

JavaScript 位置

内部 JavaScript

<body>
    <div class="box">
        <p>你好,世界</p>
    </div>

    
    <!-- 内部js -->
    <script>
        // 在这里书写Javascript代码

        alert("Hello World")    // 页面弹出警示框

    </script>
</body>
具体位置:直接写在html文件里,用script标签包围JavaScript代码

书写规范:script标签写在</body>的上面

外部 JavaScript

<body>
    <div class="box">
        <p>你好,世界</p>
    </div>


    <!-- 引入外部js:标签的中间不要写内容!!写了也会被忽略! -->
    <script src="./js/myTest.js"></script>
</body>
代码写在以.js结尾的文件里,通过script标签,引入到html页面中

内联 JavaScript

<body>
    <button onclick="alert('Hello WOrld')">
        按钮
    </button>
</body>
代码写在标签的内部

注意:此处作为了解即可,但是后面的vue框架会使用这种模式!

语法速查

MDN 官网:https://developer.mozilla.org/zh-CN/

注释

单行注释:
	符号://
	VS Code快捷键:Ctrl + /
	
块注释:
	符号:/* */
	VS Code快捷键:Shift + Alt + A (注意:此快捷键可能与系统的截图快捷键冲突,可在VS Code中修改为其他快捷键)

结束符

    <script>
        alert("Hello World");
    </script>
JavaScript 的结束符是";"

作用:使用英文的;代表语句结束

实际情况:实际开发中,可写可不写,浏览器(JavaScript 引擎)可以自动推断语句结束的位置

现状:越来越多的人主张省略结束符

约定:为了风格统一,结束符要么每一句都写,要么每一句都不写(按照团队要求)

输入

prompt

<body>
    <script>
        prompt('请输入您的姓名')
    </script>
</body>
作用:显示一个对话框,对话框中包含一条文字信息,用来提示用户输入文字

输出

write

<body>
    <script>
        // 输出内容到文档中
        document.write('<div>我是div标签</div>')
        document.write('<h1>我是一级标题</h1>')
    </script>
</body>
语法:document.write()

作用:向body内输出内容

注意:如果输出的内容写的标签,也会被解析成网页元素。

alert

<body>
    <script>
        alert("警示")
    </script>
</body>
作用:页面弹出警告对话框

console.log

<body>
    <script>
        console.log('输出内容到控制台')
    </script>
</body>
作用:输出到控制台,程序员调试时使用

变量

命名规范

规则:
	1.不能使用关键字
	2.只能用下划线、字母、数字、$组成,且不能数字开头
	3.字母严格区分大小写
	
规范:
	1.起名要有意义
	2.遵守小驼峰体命名法(例如:userName)

声明变量

<body>
    <script>
        // 声明变量
        let temp
        
        // 声明变量的同时,进行赋值
        let age = 18
        let name = 'Jack'
        
        // 一次性声明多个变量
        let a, b
        let c = 10, b = 'hello world'
        
        // 为了更好的可读性,一般声明多个变量采取"一行只声明一个变量"的形式
        let data1
        let data2
        let data3
        
    </script>
</body>
语法:
	let 变量名

更新变量

<body>
    <script>
        let age = 18
        age = 30
    </script>
</body>
更新变量:变量赋值后,还可以更新它的值

注意:let 不允许多次声明一个变量

let 与 var

let 和 var 的区别:

  • 在较旧的 JavaScript 中,使用关键字 var 来声明变量,而不是 let

  • 现在的开发中一般不再使用 var ,只是我们可能在老版本的程序中看到它

  • let 解决了 var 的一些问题,更加先进!

var 声明:

  • 可以先使用,再进行声明(不合理)
  • var 声明过的变量可以重复声明(不合理)
  • 变量提升、全局变量、没有块级作用域等

数组

基础部分

<body>
    <script>
        // 定义数组
        let nums = []

        // 赋值操作
        nums[0] = 10
        nums[1] = 20

        // 定义并初始化
        let names = ['Jack', 'Tony', 'Peter']

        // 输出数组元素
        console.log(nums[0])
        console.log(nums[1])
        console.log(names[0])
        console.log(names[1])
        console.log(names[2])

        // 输出数组长度
        console.log(names.length)
    </script>
</body>
概念:一种将"一组数据存储在单个变量名下"的优雅方式

语法:
	let arr = []

进阶部分

push 方法

作用:
	push()方法将指定的元素添加到数组的末尾,并返回新的数组长度
    <script>
        const arr = ['red', 'blue', 'green']

        const count = arr.push('yellow')
        console.log(count);
        console.log(arr);
    </script>

splice 方法

作用:
	splice()方法用于添加或删除数组中的元素
    <script>
        const arr = ['red', 'blue', 'green']
        
        // splice(从索引?开始, 删除?个元素)
        // 返回值: 以数组的形式,返回被删除的元素
        const newArr = arr.splice(0, 3)
        console.log(arr);       // []
        console.log(newArr);    // ['red', 'blue', 'green']
    </script>

map 方法

使用场景:
	map()方法可以遍历数组处理数据,并且返回新的数组
    <script>
        const arr = ['red', 'blue', 'green']
        const newArr = arr.map(function (ele, index) {
            console.log(ele);       // 数组元素
            console.log(index);     // 数组索引号
            return ele + 'Color'
        })
        console.log(newArr);
    </script>

forEach 方法

介绍:
	forEach()方法用于调用数组的每个元素,并将元素传递给回调函数

使用场景:
	遍历数组的每一个元素
    <script>
        const arr = ['red', 'green', 'pink']
        arr.forEach(function (item, index) {
            console.log(item);      // red green pink
            console.log(index);     // 0   1   2
        })
    </script>

join 方法

作用:
	join()方法用于把数组中的所有元素转换一个字符串
    <script>
        const arr = ['red', 'blue', 'green']
        console.log(arr.join('---'));   // red---blue---green
    </script>

filter 方法

介绍:
	filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素

使用场景:
	筛选数组符合条件的元素,并返回筛选之后元素的新数组
    <script>
        const arr = [0, 10, 20, 30]
        const newArr = arr.filter(function (item, index) {
            return item >= 20
        })
        console.log(newArr);    // [20, 30]
    </script>

常量

<body>
    <script>
        const PI = 3.14
        console.log(PI);
    </script>
</body>
概念:使用 const 声明的变量称为"常量"

使用场景:当某个变量永远不会改变时,就可以用 const 来声明,而不用 let

注意:常量不允许重新赋值,这意味着声明的时候就必须进行初始化

规范:英文全部大写(可以不遵守)

数据类型

基本数据类型

类型名称Type Name
数字型number
字符串型string
布尔型boolean
未定义型undefined
空类型null

引用数据类型

类型名称Type Name
对象object

数字类型

算术运算符

<body>
    <script>
        // 求余数:
        console.log(5 % 3);     // 结果为 2
    </script>
</body>
"数学运算符"也叫"算术运算符",主要包括以下几个部分:
加(+)	减(-)	乘(*)	除(/)	取余(%)

优先级:
	1.括号
	2.乘、除、取余
	3.加减

NaN

NaN:not a number

NaN 代表计算错误!它是一个不正确的或者一个未定义的数学操作所得到的结果

NaN 是粘性的,任何对 NaN 的操作都会返回 NaN(例如:NaN + 6 的结果还是 NaN)

字符串类型

认识字符串

<body>
    <script>
        let name = 'Jack'       // 使用单引号
        let gender = "male"     // 使用双引号
        let goods = `HUAWEI`    // 使用反引号
        let tel = '13636975625' // 字符串
        let str = ''            // 空字符串
    </script>
</body>
1.通过单引号、双引号、或反引号包裹的数据都是字符串

2.单引号和双引号没有本质上的区别,推荐使用单引号!

3.必要时可以使用转义符"\",输出单引号和双引号

字符串拼接

<body>
    <script>
        let age = 30
        document.write('年龄:' + age + '岁')
    </script>
</body>

运行结果:
	年龄:30岁

模板字符串

<body>
    <script>
        let age = 30
        document.write(`Jack已经${age}岁了`)
    </script>
</body>

运行结果:
	Jack已经30岁了
语法:
	用"反引号"去包含字符串,遇到变量则使用 ${变量}

布尔类型

<body>
    <script>
        let isCool = true
        isCool = false
        console.log(isCool);
    </script>
</body>

未定义类型

基本介绍:
	"未定义"是比较特殊的类型,只有一个值 undefined

什么情况出现未定义类型?
	只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少(直接)为某个变量赋值为 undefined

使用场景:
	我们开发中经常生命一个变量,等待传送过来的数据,如果我们不知道这个数据是否传递过来,此时我们可以通过检测这个变量是不是 undefined,就判断用户是否有数据传递过来

空类型

<body>
    <script>
        let obj = null
        console.log(obj)
    </script>
</body>

null 和 undefined 的区别

  • undefined 表示没有赋值
  • null 表示赋值了,但是内容为空
  • 计算有明显区别
    • undefined + 1 的结果为 undefined
    • null + 1 的结果为 1

检测数据类型

<body>
    <script>
        let num = 10
        console.log(typeof num)
    </script>
</body>
typeof 运算符可以返回被检测的数据类型,它支持两种语法格式
	1.作为运算符:typeof x	(常用的写法)
	2.函数形式:typeof(x)
	
提示:有括号和没有括号,得到的结果是一样的,所以我们直接使用"运算符"的写法

类型转换

隐式转换

规则:
	+ 号两边只要有一个是字符串,都会把另外一个转成字符串
	除了 + 以外的算术运算符,比如 - * / 等都会把数据转成数字类型

缺点:
	转换类型不明确,靠经验才能总结

显示转换

<body>
    <script>
        let str = '123'
        console.log(Number(str))                // 123
        // ---------------
        console.log(parseInt('12px'))           // 12
        console.log(parseInt('12.78px'))        // 12
        console.log(parseInt('13.14Love'))      // 13
        // ---------------
        console.log(parseFloat('12px'))         // 12
        console.log(parseFloat('12.678px'))     // 12.678
        console.log(parseFloat('13.14Love'))    // 13.14
        // ---------------
        console.log(parseInt('abc3.14'))        // NaN
        console.log(parseFloat('abc3.14'))      // NaN
    </script>
</body>
为了避免"隐式转换"带来的问题,通常需要对数据进行显示转换

语法:
	Number(数据)
	// 转成数字类型
	// 如果字符串内容里面有非数字,转换失败时结果为 NaN(Not a Number)

	parseInt(数据)
	// 只保留整数(具有去除非数字部分字符的能力)
	
	parseFloat(数据)
	// 可以保留小数(具有去除非数字部分字符的能力)
★教程1:matlab学习教程入门100例目录 ★基础入门 1.为什么要学习MATLAB 2.MATLAB安装 持续更新....... ★MATLAB基础编程语言熟悉 阅读详情

相关推荐

深入解析Incapsula reese84的生成机制与绕过策略

本文深入解析了Incapsula reese84的生成机制与绕过策略。reese84是一种基于客户端JavaScript挑战的Web安全防护,通过动态算法收集浏览器指纹并生成令牌Cookie。文章详细拆解了其两步验证流程,并提供了使用无头浏览器、逆向JS模拟请求以及Token维护等实战绕过方法,帮助开发者和安全研究人员应对自动化访问拦截。

weixin_29256771的博客 443

SPARQL.js:JavaScript 中的 SPARQL 1.1 解析器

SPARQL.js:JavaScript 中的 SPARQL 1.1 解析器 项目介绍 在现代网络应用中,处理大规模数据已成为一项关键任务。RDF(Resource Description Framework)作为一种用于描述数据的框架,广泛应用于语义网和知识图谱领域。SPARQL(SPARQL Protocol and RDF Query Language)1.1 是一种用于查询 RDF 数据的...

gitblog_00291的博客 337

利用ArcGIS创建渔网计算渔网内土地利用占比划分中国北方农牧交错带

依据土地利用数据,根据参考文献划分要求,利用ArcGIS创建渔网对地物进行重分类,划分农业带、牧业带以及农牧交错带。

m0_60672527的博客 3059

Crypto-js 4.1.1版本资源下载:JavaScript加密利器,让数据安全触手可及

Crypto-js 4.1.1版本资源下载:JavaScript加密利器,让数据安全触手可及 【下载地址】Crypto-js4.1.1版本资源下载 Crypto-js 4.1.1是一个功能强大的JavaScript加密库,专为浏览器环境设计,支持多种加密算法,如AES、DES、SHA等。通过下载该版本资源,您可以轻松集成...

gitblog_06756的博客 843

软考29-上午题-【数据结构】-排序

数据结构7种排序

qq_31532983的博客 1579

[内网基础] 内网基础知识 —— Windows 工作组

在一个大型单位里,可能有成百上千台计算机互相连接组成局域网,如果不对这些计算机进行分组,网络的混乱程度是可想而知的。Windows 为了解决这一问题,就产生了工作组(Work Group)这个概念。Windows 工作组尝试将不通的计算机按功能(或部门)分别列入不同的工作组,例如技术部的计算机都列入 “技术部” 工作组、行政部的计算机都列入 “行政部” 工作组。要想访问某个部门的资源,只要在 “网络” 里双击该部门的工作组名,就可以看到该部门里的所有计算机了。

Blue17 の 小窝 1602

【亲测免费】 JavaScript ASN.1 解析器:asn1js

`asn1js` 的核心功能是解析 ASN.1 编码的数据。它能够处理 Base64 编码和十六进制编码的数据,并支持从本地文件中读取。以下是该项目的几个关键特性: - 解析 DER(Distinguished Encoding Rules)和 BER(Basic Encoding Rules)格式的 ASN.1 结构。 - 支持将 Base64 或十六进制编码的数据解码为 ASN.1 结构。 ...

gitblog_01172的博客 541

SAP_PP模块跑完 MRP,MD04 里却看不到“计划订单”?排查这 3 个最容易被忽略的主数据参数

MRP 是 SAP 逻辑最严密的模块之一,它绝不会随机罢工。当 MD04 里看不到计划订单时,请不要怀疑系统的计算能力。99% 的情况,都是因为我们给系统下达了矛盾的指令:一边告诉它“我有需求”,一边却通过主数据告诉它“不要计划”、“不要触发”或者“我是冻结的”。掌握这 3 个排查点,你就能在 5 分钟内解决大部分“MRP 失灵”的悬案,成为用户眼中的“系统神医”。

我小时候很黑的博客 590

1.1初识JavaScript ——JS

JS 简介,变量,编码规范

m0_58761900的博客 1089

Modbus测试工具ModbusPoll与Modbus Slave使用方法 小白实操记录

Modbus 下面介绍modbus标准协议从站、主站仿真工具;可用于指令下发,数据采集等;是学习、现场运维的好工具。 1 介绍 Modbus Poll :Modbus主机仿真器,用于测试和调试Modbus从设备。该软件支持ModbusRTU、ASCII、TCP/IP。用来帮助开发人员测试Modbus从设备,或者其它Modbus协议的测试和仿真。它支持多文档接口,即,可以同时监视多个从设备/数据域。每个窗口简单地设定从设备ID,功能,地址,大小和轮询间隔。你可以从任意一个窗口读写寄存器和线圈。如果你想改

码灵的博客 1万+

基于STM32L4XX、HAL库的ESP32-C3-WROOM-02-N4 WIFI模块驱动程序设计

支持802.11 b/g/n Wi-Fi (2.4GHz)RISC-V 32位单核处理器,主频高达160MHz。封装尺寸:18mm × 20mm × 3mm。工作温度范围:-40°C ~ 85°C。// 设置WiFi模式为STA。支持Bluetooth 5 (LE)// 发送AT指令测试通信。// 检查响应是否包含OK。内置4MB SPI Flash。// 连接TCP服务器。// 发送HTTP请求。// 初始化UART。// 建立TCP连接。低功耗设计,适合IoT应用。

zhusl6688的博客 384

ASN.1解析终极指南:JavaScript开发者必备的asn1js完整教程

在数字安全与数据交换领域,ASN.1格式处理是每个JavaScript开发者都需要掌握的核心技能。asn1js作为一款纯JavaScript实现的通用ASN.1解析器,为开发者提供了强大的ASN.1解析能力,能够准确解码任何有效的ASN.1 DER或BER结构。 ## 🚀 三步快速安装方法 安装asn1js极其简单,只需几个命令即可完成: ```bash # 通过npm安装 npm ins

gitblog_00023的博客 1022

OpenCloudOS9操作系统搭建Confluence8.2.1+Jira企业级WIKI

Atlassian Confluence是一个专业的企业知识管理与协同软件,可用于构建企业wiki

背锅神童的博客 1021

深入解析asn1js:JavaScript中的ASN.1数据编解码利器

还在为处理复杂的ASN.1数据结构而头疼吗?🤔 在网络安全、数字证书和加密通信领域,ASN.1(抽象语法标记一)作为一种重要的数据表示标准,其编解码操作常常让开发者感到棘手。今天,我们就来深度剖析一个能够轻松解决这一难题的JavaScript库——asn1js。 ## 什么是asn1js? asn1js是一个轻量级的JavaScript通用ASN.1解析器/解码器,能够解码任何有效的ASN.

gitblog_00859的博客 451

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

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

op-js:简单易用的1Password CLI JavaScript封装库

op-js:简单易用的1Password CLI JavaScript封装库 项目介绍 op-js 是一个用于封装 1Password 命令行界面(CLI)的简单 JavaScript 库。它为大多数 CLI 命令提供了方法,并扩展了 CLI 的生物识别认证功能,使其能够应用于任何基于 Node.js 的应用程序。此外,它还包括 TypeScript 声明,为开发者提供了更丰富的类型支持。 项目技...

gitblog_01123的博客 541

VB摄像头监控

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

connect-sdk-js:为JavaScript应用提供1Password Connect API接入能力

connect-sdk-js:为JavaScript应用提供1Password Connect API接入能力 项目介绍 在现代软件开发中,安全性和效率至关重要。1Password Connect SDK JS 是一款开源JavaScript库,允许你的JavaScript和TypeScript应用通过自托管的1Password Connect服务器访问1Password Connect API。...

gitblog_01148的博客 1040

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

js-yaml 完全指南:JavaScript 环境下的 YAML 1.2 解析与序列化实践

本指南以 Jsonnet 仓库内托管的第三方库 [doc/third_party/js-yaml/README.md](https://link.gitcode.com/i/c17a4ac3b2f02d9e009ade0f541a8e61) 为蓝本,系统讲解 js-yaml 的安装方式、命令行工具、Node.js 与浏览器双端 API、支持的类型体系与已知限制,并结合仓库内真实使用场景(文档站 Y

gitblog_00866的博客 670

JavaScript【基础】【JS1】

目录 1. 转字符串 2. 转数字 3.转布尔值 4.字符串'false'有问题 5.null vs undefined 6. 真值和虚值 7. const 声明变量哪些类型可以被更改 8. 三等号和双等号的区别 9. 接收参数更好的方式 10.把普通函数改成箭头函数 11.从箭头函数返回对象/表达式 12. 将set转换为数组 13.检查值是否为数组 14. 获取对象的所有键 15. 双问号语法 16. map() 17. try…catch…finally 18...

琴韵悠悠 706

JS(javaScript)——1介绍

1、介绍 Html是结构,js是行为,css是表现 Js:javaScript和java没有一点关系,只是名字像而已; js运行环境 Html是人体,css和javascript有点像寄生虫; 设计框架:Script:(脚本) javaScript:它是一个弱类型的语言;java就是强类型(类型有四类八种);而javaScript只一种类型,那...

inexaustible的博客 384

timeago.js 1.1.0,一个极简的 Javascript 库

timeago.js是一个极简的Javascript库,压缩之后只有1.7kb,用于在browser和nodejs环境将时间转化成 *** time ago的格式。目前发布1.1.0版本,代码在github trending上。 具体更新内容如下: 新增加官网代码以及官网专属域名; 更新和完善Readme、帮助文档内容; 增加新的对语言locales...

weixin_34092370的博客 109

Ember.js 1.0 RC 发布,JavaScript 框架

Ember.js 1.0 RC 发布了,该版本修复了 pre4 中发现的 bug,已经很接近 1.0 正式版了。在此之间主要是稳定性方面的提升和文档的完善。 Ember是一个雄心勃勃的Web应用程序,消除了样板,并提供了一个标准的应用程序架构的JavaScript框架。 转载于:https://www.cnblogs.com/shihao/archive/2013/02/17/29143...

weixin_30752377的博客 99

【亲测免费】 解锁ASN.1的JavaScript魅力:ASN1.js深度探索

解锁ASN.1的JavaScript魅力:ASN1.js深度探索 在现代软件和网络通信的世界里,数据交换的标准至关重要,而ASN.1(Abstract Syntax Notation One)正是这一领域的明星标准。今天,我们深入探讨一款名为ASN1.js的开源库,它为JavaScript开发者打开了一扇通向高效、灵活的数据编码与解码的大门。 项目介绍 ASN1.js是一款强大的JavaScrip...

gitblog_00077的博客 933

深入解析yaml.js:JavaScript YAML 1.2解析器的完整实现原理

YAML是一种人类友好的数据序列化语言,广泛应用于配置文件、数据交换和应用程序配置中。**yaml.js**作为一个独立的JavaScript YAML 1.2解析器和编码器,提供了在Node.js和所有主流浏览器环境中处理YAML数据的完整解决方案。本文将深入探讨yaml.js的核心实现原理,帮助开发者更好地理解这个强大的YAML处理工具。 ## 🚀 yaml.js的核心架构解析 yaml

gitblog_00447的博客 663

javascript 1_JS入门基础

javascript 1_JS入门基础 写JS的步骤: 先实现布局 想出实现原理 了解JS语法 希望把某个元素移除的实现: display: none; 显示为无 visibility: hidden; 隐藏 width \ height 透明度 left \top 拿与背景色相同的div盖住该元素 利用margin值 …… 获取元素 getElementById() ——静态方法,前面...

今天更加博学了吗? 244

JavaScript学习总结【1】初识JS

1、什么是 JavaScript?   JavaScript 是一门跨平台、面向对象的动态的弱类型的轻量级解释型语言,是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。应用于 HTML 文档能够在网站上提供动态的交互能力,他不同于 Java。简单说就是基于浏览器处理 HTML 文档,实现各种网页特效,响应用户的各种操作,为网页添加动态效果,提升用户操作体验,比如图片滚动播放效果,

不忘初心,方得始终 7729

JavaWeb JavaScript 1. JS简介

JavaScript是一种由Netscape(网景)的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了JavaScript,提供了数据验证的基本功能。

m0_73983707的博客 1242
上一篇: CSS-6
下一篇: JavaScript-2
code_stream
博客等级 码龄4年 1238粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值