webpack基础配置及使用

webpack基本使用(基础配置) 未完 继续更新,有错误请留言 会及时改正。 阅读详情

webpack是什么

  • 是一个现代 JavaScript 应用程序的静态模块打包器。当webpack 处理应用程序时,它会递归地构建一个依赖关系图 ,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle 。
  • 主要有 五个核心概念:
    • 入口entry:指示 webpack 从哪个文件开始打包。
    • 输出output:会告诉 webpack 打包完的文件输出到哪里去,以及如何命名这些文件,默认值为 ./dist:
    • 加载器loader:webpack 只能处理 JavaScript、json等资源,其他资源需要借助loader 才能解析。
    • 插件plugins: 扩展webpack 的功能。使用一个插件也非常容易,只需要 require() ,然后添加到 plugins 数组中。
    • 模式mode:主要是两种模式
      • 开发模式:development
      • 生产模式:production

配置

  • 初始化包:npm init -y

    • 包名不能是webpack
  • 下载依赖:npm i webpack webpack-cli -D

    • npm代理设置

      # 设置http代理
      npm config set proxy http://ip:port
      npm config set https_proxy http://ip:port
      
    • npm代理设置为空

      npm config set proxy null
      npm config set https-proxy null
      
    • 更换淘宝镜像:npm config set registry https://registry.npmmirror.com

  • 从入口打包:npx webpack 入口js文件 --mode=development

    • 打包好后在dist里面

配置文件

const path = require("path"); //nodejs核心模块,专门用来处理路径问题

module.exports = {
    //入口
    entry: "./src/main.js", //相对路径
    //输出
    output:{
        //文件的输出路径
        //__dirname nodejs的变量,代表当前文件的文件夹目录
        path: path.resolve(__dirname, "dist"), //绝对路径
        filename:"main.js",
    },
    //加载器
    module: {
        rules: [
            //loader的配置
        ],
    },
    //插件
    plugins: [
        //plugin的配置
    ],
    //模式
    mode: "development",
};

处理样式资源

1.处理什么资源就要先引入什么资源

2.根据官方文档去下载对应的loader:npm install --save-dev css-loader

3.把loader引用到配置中

//加载器
    module: {
        rules: [
            //loader的配置
            {
                test:/\.css$/, //只检测.css文件
                use: [ //执行顺序,从右到左(从下到上
                    "style-loader", //将js中css通过创建style标签添加html文件中生效
                    "css-loader", //将css资源编译成common.js的模块到js中
                ],
            },
        ],
    },

4.用几个包就要下载几个包,运行通过报错知道style-loader没有下载,则npm i style-loader -D

处理Less资源

步骤类似

  • 下载对应的loader:npm install less less-loader --save-dev

  • 引入loader

    {
                    test: /\.less$/i,
                    //loader: 'xxx' //只能使用一个loader
                    use: [
                      // 使用多个loader
                      'style-loader',
                      'css-loader',
                      'less-loader', //将less编译成css文件
                    ],
                },
    

处理sass资源

  • 下载loader:npm install sass-loader sass webpack --save-dev

  • 引入loader

    {
                    test: /\.s[ac]ss$/i,
                    use: [
                      // 将 JS 字符串生成为 style 节点
                      'style-loader',
                      // 将 CSS 转化成 CommonJS 模块
                      'css-loader',
                      // 将 Sass 编译成 CSS
                      'sass-loader',
                    ],
                },
    

处理stylus资源

  • 下载loader:npm install stylus stylus-loader --save-dev

  • 引入loader

    {
                    test: /\.styl$/,
                    use: [
                        'style-loader',
                        'css-loader',
                        'stylus-loader', //将stylus编译成css文件
                    ],
                },
    

处理图片资源

处理图片资源webpack已经内置这个功能了,但想要让图片转base64进行优化,可以加入下面的loader配置

{
                test: /\.(png|jpe?g|gif|webp|svg)$/,
                type: 'asset',
                parser: {
                 dataUrlCondition: {
                    //小于10kb的图片转base64
                    //优点:减少请求数量 缺点:体积会更大
                   maxSize: 10 * 1024 // 10kb
                 },
               },
            },

修改输出文件目录

希望不同的资源去不同的路径下寻找,这样更简洁明了。对应的路径可以在output下修改:

//输出
    output:{
        //所有文件的输出路径
        //__dirname nodejs的变量,代表当前文件的文件夹目录
        path: path.resolve(__dirname, "dist"), //绝对路径
        //入口文件打包输出文件名
        filename:"static/js/main.js",
    },

而图片可以添加generator修改路径:

{
                test: /\.(png|jpe?g|gif|webp|svg)$/,
                type: 'asset',
                parser: {
                 dataUrlCondition: {
                    //小于10kb的图片转base64
                    //优点:减少请求数量 缺点:体积会更大
                   maxSize: 10 * 1024 // 10kb
                 },
               },
               generator: {
                //输出图片名称
                //hash:10 hash值只取前10位
                filename: 'static/images/[hash:10][ext][query]',
              },
            },

自动清空上次打包的内容

在output里面添加clean: true即可,原理是:在打包前,将path整个目录的内容清空,再进行打包

处理字体图标资源

处理场景有很多,这个以阿里巴巴的图标库为例。

  • 1.下载阿里巴巴素材库中的图标,以供使用。

  • 2.下载好安装包,打开demo_index.html来进行操作,以其中font-class为例。
    在这里插入图片描述

  • 3.引入iconfont.css,并根据自己引入的位置将最上方的url设置正确

    • 在main.js也要import该css
  • 4.引入iconfont.ttf、iconfont.woff、iconfont.woff2

  • 5.挑选相应图标并获取类名,应用于页面:<span class="iconfont icon-xxx"></span>

处理其他资源

有视频等其他资源就在test里面添加就可以了

{
                test: /\.(ttf|woff2?|mp3|mp4|avi)$/,
                type: 'asset/resource', //这个就不要转换成base64
                generator: {
                    //输出图片名称
                    filename: 'static/media/[hash:10][ext][query]',
                },
            },

处理js资源

  • webpack对js处理是有限的,只能编译js中ES模块化语法,不能编译其他语法,导致js不能在IE等浏览器上运行,所以希望能做一些兼容性处理。
    • 针对js兼容性处理,使用Babel来完成。
    • 针对代码格式,使用Eslint来完成。

Eslint使用

  • 检测代码的错误

  • 1.安装插件:npm install eslint-webpack-plugin --save-dev、npm install eslint --save-dev

  • 2.插件与loader不一样,需要引入后才能用:const ESLintPlugin = require('eslint-webpack-plugin');

  • 3.添加plugins配置,选择检测哪些文件

    plugins: [
            //plugin的配置
            new ESLintPlugin({
                //检测哪些文件
                context: path.resolve(__dirname, "src"),
            }),
        ],
    
  • 4.配置文件.eslintrc.js(只是一些常规的

    module.exports = {
        // 继承 Eslint 规则
        extends: ["eslint:recommended"],
        env: {
          node: true, // 启用node中全局变量
          browser: true, // 启用浏览器中全局变量
        },
        parserOptions: {
          ecmaVersion: 6, // es6
          sourceType: "module", // es module
        },
        rules: {
          "no-var": 2, // 不能使用 var 定义变量
        },
      };
      
    
  • 5.若想忽略一些文件夹的检测,就创建.eslintignore,在里面写文件名即可

Babel

  • 将一些新的语法转换成旧的,以起到兼容的作用

  • 1.下载包:npm install -D babel-loader @babel/core @babel/preset-env

  • 2.导入loader:

    {
                    test: /\.js$/,
                    exclude: /(node_modules)/, //排除node_modules中的js文件(这些文件不处理
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env'],
                    },
                },
    

处理Html资源

  • 不需要手动引入js,通过插件自动引入

  • 1.安装包:npm install --save-dev html-webpack-plugin

  • 2.在webpack.config.js引入const HtmlWebpackPlugin = require('html-webpack-plugin');

  • 3.在plugins里添加

    new HtmlWebpackPlugin({
                //模板,以public/index.html文件创建新的html文件
                //新的文件特点:1、结构和原来一致 2、自动引入打包输出的资源
                template: path.resolve(__dirname, "public/index.html"),
            }),
    

开发服务器&自动化

  • 1.下载包:npm i webpack-dev-server -D

  • 2.在webpack.config.js引入

    //开发服务器
        devServer:{
            host: "localhost", //启动服务器域名
            port: "3000", //启动服务器端口号
            open: true, //是否自动打开浏览器
        },
    
  • 3.启动指令是:npx webpack serve

  • PS:开发服务器不会输出资源,在内存中编译打包的

生产模式准备工作

  • 生产模式是开发完成代码后,需要将代码部署上线。这个模式主要是对代码进行优化,从以下两个角度:
    • 代码运行性能
    • 代码打包速度
  • dev是开发者模式,没有输出。
    • 开发模式配置了devServer之后是不输出资源的,在内存中编译打包。
    • 命令:webpack serve --config ./config/webpack.dev.js(根据自己的路径找js
  • prod是生产模式,有输出。
    • 生产模式不需要devServer,它只需要打包输出即可。
    • 命令:webpack --config ./config/webpack.prod.js

提取css成单独文件

  • css文件目前被打包到js文件中,当js文件加载时,会创建一个style标签来生成样式,这样对于网站而言,会出现闪屏现象,用户体验不好。我们应该是单独的css文件,通过link标签加载,这样性能才会好。

  • 1.下载包:npm install --save-dev mini-css-extract-plugin

  • 2.在webpack.prod.js上方引入插件:const MiniCssExtractPlugin = require("mini-css-extract-plugin");

  • 3.把文件中'style-loader',都换成MiniCssExtractPlugin.loader,

  • 4.plugins里面添加new MiniCssExtractPlugin(),

    • 可以通过filename来设置生成的css所在的路径

      new MiniCssExtractPlugin({
                  filename: "static/css/main.css",
              }),
      

样式兼容性处理

  • 1.下载包:npm i postcss-loader postcss postcss-preset-env -D

  • 2.在css-loader都加上:

    {
                            loader: "postcss-loader",
                            options: {
                                postcssOptions: {
                                    plugins: [
                                        "postcss-preset-env", //能解决大部分样式兼容性问题
                                    ],
                                },
                            },
                        },
    
  • 3.可以在package.json里添加要控制什么兼容条件

    "browserslist": [
        "last 2 version",
        "> 1%",
        "not dead"
      ]
    

封装样式loader函数

相同的代码可以封装成函数,简化代码。

//用来获取处理样式的loader
function getStyleLoader(pre){
    return [
        MiniCssExtractPlugin.loader, //提取css成单独文件
        "css-loader", //将css资源编译成common.js的模块到js中
        {
            loader: "postcss-loader",
            options: {
                   postcssOptions: {
                        plugins: [
                            "postcss-preset-env", //能解决大部分样式兼容性问题
                    ],
                },
            },
        },
        pre,
    ].filter(Boolean);
}

css压缩

  • css-minimizer-webpack-plugin使用 cssnano优化和压缩css,就像 optimize-css-assets-webpack-plugin一样,但在 source maps 和assets中使用查询字符串会更加准确,支持缓存和并发模式下运行。
  • 1.下载包:npm install css-minimizer-webpack-plugin --save-dev
  • 2.在webpack.prod.js上方引入插件:const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
  • 3.plugins里面添加new CssMinimizerPlugin(),
webpack的基本介绍与使用 Webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。 阅读详情

相关推荐

Webpack配置编译SCSS

原文地址: https://justforuse.github.io/blog/2019/03/webpack-compile-scss/ 现在框架都提供了一套完整的编译配置,比如Vue; 有时只是需要编译scss文件,在使用gulp的方式时遇到了无法识别SCSS的~语法的问题,其实也可以通过一些配置来解决,只是觉得既然webpack是主流,那不妨总结一套专门编译scss的配置 webpack.c...

justforuse的博客 8901

webpack的使用,以及配置

快速配置,简单了解,高校使用webpack

weixin_58396000的博客 475

webpack 基础配置

webpack 是一个静态资源打包工具Webpack 本身功能比较少,只能处理 js,json 资源。

BG的博客 1239

【webpack】webpack的基本使用

整理了一些webpack4基本的使用

weixin_43655896的博客 8037

sentinel滑动时间窗口算法学习

滑动时间窗口 先不说sentinel的算法实现,先说什么是滑动时间窗口, 我们在进行限流的时候,比如通过QPS进行限流,那假如我们以秒为单位,举个例子: 我设置了限流规则,qps是10 如果不使用滑动窗口算法,在统计qps的时候,就有可能会有问题,比如: 在0 - 500ms中的请求数是0,但是在500ms - 1000 ms的请求数是10;在1000ms - 1500ms 之间又进来了5个请求,此时只判断了1000ms - 2000 ms之间的请求数 因为没有把1S进行拆分多个窗口,所以在1000ms之后

小小少年的博客 3981

OSGEarth三维可视化避坑指南:如何高效加载SHP/TIF地理数据?

本文详细介绍了OSGEarth在三维地球可视化中高效加载SHP/TIF地理数据的实战策略,包括空间参考系配置、性能优化、二三维联动等关键技巧。通过具体案例和代码示例,帮助开发者解决坐标偏移、性能卡顿等常见问题,提升三维GIS开发效率。

weixin_29216957的博客 223

webpack的使用,看这一篇就够了

学 webpack 看这一篇就够了

m0_51060602的博客 3418

MATLAB联合Fluent优化仿真

matlab与fluent交互

keleke_的博客 4731

webpack基础配置

webpack的基础配置已经学习过无数遍,每次都是学完就忘,这次决定记录下来,把自己学习的过程记录下来,一是为了加强记忆,二是为了以后方便回顾。 背景 webpack是一款目前来说应用特别广泛的打包工具,也是提升前端开发level的一个重要技能。本篇主要探讨下webpack的入口、输出等,比较基础如果已经非常熟悉webpack了 可不必细读也可绕道。 概念 官网的定义:(官网地址) 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 we

一个慢的博客 1621

复现CVE-2014-085(Apache ZooKeeper 未授权访问漏洞)

默认安装配置完的zookeeper允许未授权访问,管理员未配置访问控制列表(ACL)。导致攻击者可以在默认开放的2181端口下通过执行envi命令获得大量敏感信息(系统名称、java环境)导致任意用户可以在网络不受限的情况下进行未授权访问读取数据。

记录并分享学习安全的知识点.. 2178

使用R语言实战:构建Logistic回归模型

Logistic回归是一种基于概率的分类算法,它用于预测离散的结果变量(也称为响应变量或因变量)。与线性回归不同,Logistic回归的输出是一个概率值,通常在0和1之间。这使得它非常适合处理二分类问题。市场营销:预测客户是否会购买某个产品。医学研究:预测疾病的发生与否。信用风险评估:预测个人申请贷款的违约风险。社会科学:预测个人对某个政策的态度。

2301_79331230的博客 1140

webpack配置

webpack是前端的打包工具打包的工作内容是什么扫描项目,生成整个项目所有模块的依赖关系,根据配置对模块进行合并,生成一个单独的文件。修改html文件,让html文件引用生成后的文件将浏览器无法直接识别的(less、sass、ts)文件,转换成浏览器可以实现的内容。将浏览器暂时无法支持的JS新的语法转换成浏览器可以支持的语法。

m0_60505147的博客 1万+

手把手教你学pcie--内存管理和保护机制(一):MPU与其他内存管理和保护机制详解

MPU(Memory Protection Unit)是一种专门用于 ​。,这些机制通常协同工作,形成多层防御体系,兼顾安全性、性能和灵活性。

MHD0815的博客 279

webpack2——webpack的基础配置

1.webpack的安装 webpack一般是本地安装,也就是在自己所需要的项目中进行安装,需要安装的包有两个 -webpack webpack-cli -D -D表示安装的是依赖,在项目上线的时候不需要加载 注:项目初始化的时候,可以直接使用命令: cnpm init -y 他与之前使用的cnpm init 的区别是会默认进行一系列的设置,而不需要自己在一步步的回车,方便了项目的开发。 2.w...

qq_36836277的博客 545

Unlocking Decoding-time Controllability: Gradient-FreeMulti-Objective Alignment with Contrastive Pr

将基于庞大网络语料库训练的大型语言模型(LLMs)(OpenAI,2023;Touvron 等,2023;Google,2023)与人类偏好对齐,是减少产生不安全(Wei 等,2023)、幻觉(Zhang 等,2023b)和有偏见(Gallegos 等,2023)内容的重要一步。随着偏好学习技术(如 PPO(Schulman 等,2017)、DPO(Rafailov 等,2023)及其他变体(Azar 等,2023;Ethayarajh 等,2024;

qq_52053775的博客 1169

手把手教你学 GPU KMD--1.2:UMD、KMD 与 DDK 的协作关系(下)——权限提升与安全边界

本文探讨了UMD、KMD与DDK协作中的权限提升与安全边界问题。GPU作为强大DMA引擎,必须通过分层权限模型(用户态/内核态)隔离风险,KMD作为守门人对UMD请求进行严格校验。文章详细分析了权限提升路径、安全边界设计(GPU虚拟内存隔离、命令白名单、IOMMU强制隔离等),并列举历史漏洞案例说明安全边界的重要性。现代增强方案包括虚拟化与可信执行环境。核心安全原则是"永远不信任用户态数据",需对所有地址、命令、资源和DMA进行严格管控。

amy_mhd的博客 324

webpack基础webpack-dev-server配置

webpack基础+webpack配置文件常用配置项介绍+webpack-dev-server 一.webpack基础   1.在项目中生成package.json:在项目根目录中输入npm init,根据提示输入相应信息。(也可以不生成package.json文件,但是package.json是很有用的,所有建议生成)   2.安装webpaack     ...

马优晨 5589

IMSL CNL 7.0.0 (x86-64)Crack

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

webpack基础配置及常用loader

webpack基础配置及常用loader

qq_40289557的博客 950

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Webpack 基础配置 Vue+Ts

基于Ts + Vue 的 Webpack 基础配置

weixin_42524603的博客 1681

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

webpack及babel配置

请先确认自己的电脑已经安装了 node 和 npm,没有安装的请先安装,以下操作需在安装了这两个的基础上操作 webpack配置 1. 创建一个空文件夹 2. 创建 package.json 文件- - -npm init。 使用编辑器打开该文件夹,此处我使用的编辑器为 vscode,再命令行输入命令‘npm init’,会出现一些选项,可以都直接回车,默认设置,全部回车完成后,会生成一个 “package.json” 文件。如下: 如果要更改信息可以直接在改文件中修改 如果希望 “package.jso

qq_39111074的博客 2866

配置webpack基础

配置webpack基础,首先看一下文件目录 1.新建一个目录 在终端执行命令 生成package.json配置文件 注:cnpm是一个淘宝镜像 主要是为了提高安装速度,具体解释大家可以百度,没安装cnpm 的直接使用npm也是一样的 cnpm init -y 或 npm init -y 2.安装webpack插件 cnpm i webpack webpack-cli -D cnpm i we...

qq_44185284的博客 290

webpack 常用配置

一、前言 webpack是目前前端开发中最流行的打包工具,不仅能实现 JS 打包,还能将 CSS 文件,图片文件,甚至是 LESS 文件打包,每一个文件都是一个独立的模块,并且实现按需加载。使用时需要安装 webpack 、webpack-cli 、webpack-dev-server三个基础模块。 二、常用 webpack 配置如下 module.exports = { ...

杏子 1万+

webpack基本配置

不足,请补充

weixin_51977111的博客 9704

webpack常用配置

webpack常规说明

Follow_the_heart的博客 2749
上一篇: JavaScript类型转换
下一篇: 推送本地仓库代码到远程仓库
ZoeLandia
博客等级 码龄6年 734粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值