webpack里的loader

《Vite 基础知识》使用 ?raw 将 vue文件转为字符串(两种方式) 学习 vite 时,找到插件 awesome-vite,顺着找,可以看到插件 vite-plugin-raw 起作用。官方翻译该插件可将任何类型的文件转换为字符串。 这里仅对 .vue 文件做转换。使用场景,如使用 codemirror 显示源码等; 阅读详情

Loaders

网址:https://webpack.js.org/loaders/
介绍:
在实际项目中,不仅有js文件,还有css、图片、ES6转ES5、tpyescript转ES5,将less,scss转化css,将jsx、vue文件转换js文件这样就需要loader来解决
1.作用:为了解决除了js类型的(txt,md 之类的)
2.代码示意loader:

 module:{
        rules:[
            {
                test:/\.txt$/,
                loader: 'raw-loader'   //加载原始内容的loader
            }
        ],
    }

​ 注意:webpack 碰到不识别的模块的时候,webpack 会在配置的 module 中进行该文件解析规则的查找

  • rules 就是我们为不同类型的文件定义的解析规则对应的 loader,它是一个数组
  • 类型规则通过 test 选项来定义,通过正则匹配,通过正则的方式来匹配文件后缀类型
  • use针对不同文件类型,调用对应的loader;

3.loader类型:
案例:

3-1 md类型

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src='./dist/main.js'></script>
</body>
</html>
	src/data/haha.md
# 哈哈
javascript
python
php
css
ui

​ src/data/index.js

import haha from "./data/haha.md";
console.log(haha);
document.body.innerHTML='haha'   //把内容输出到页面
console.log('哈哈哈哈');

​ 1.安装mardown-loader html-loader

npm install markdown-loader
npm install --save-dev html-loader

​ 2.配置 webpack.config.js

 module:{
        rules:[
            {
                test:/\.txt$/,
                loader: 'raw-loader'   //加载原始内容的loader
            },
            {
                test:/\.md$/ ,        //正则判断是否是markdown
                //执行多个loader,他执行顺序是从后往前解析
                use:['html-loader','markdown-loader']
            }
        ],     
    }

3.打包: ./node_modules/.bin/webpack

.txt类型:*

​ src/raw-loader.js

import aa from './data/a.txt';
import bb from './data/b.md';

console.log('aa: ', a);    //报错
console.log('bb: ', b);      //报错

webpack 会报错,因为 webpack 处理不了 txt 和 md 这样的非 js 的模块,可以通过loader来解决

解决txt类型:

3-2 raw-loader

1.先安装

npm install --save-dev raw-loader

2.然后在 webpack.config.js 中进行配置

module.exports = {
  ...,
  module: {
      rules: [
      {
        test: /\.txt$/,    //正则验证是否是txt
        loader: 'raw-loader'   // 加载原始内容的loader
    	}
    ]
	}
}

3.打包:./node_modules/.bin/webpack

3-3 file-loader(上传图片)

把识别出的资源模块,移动到指定的输出⽬目录,并且返回这个资源在输出目录的地址(字符串)

1.安装:

npm install --save-dev file-loader

2.然后在 webpack.config.js 中进行配置

rules: [
  ...,
	 {	
    test: /\.(png|jpe?g|gif)$/i, 
    use:{
        loader:'file-loader',
        options:{
        //都是占位符
        //'[path] : 路径
        //[name]   : 文件名
        //.[ext]   :后缀
        name: "[path][name].[ext]",
        //相对的是全局的outputPath
        outputPath: "/image",
        // 打包后文件的 url
        publicPath: './dist',
   				 }
			} 
}	
]

3.index.js

import  aa  from "./data/a.png";
console.log(aa);
let img=new Image();  //定义一个标签
img.src=aa;           //设置属性
document.body.appendChild(img)    //追加到页面中 

4.打包: ./node_modules/.bin/webpack

5.运行html文件

占位符网址:https://webpack.js.org/loaders/file-loader#placeholders

3-4 url-loader

可以处理理 file-loader 所有的事情,但是遇到图片格式的模块,可以选择性的把图片转成 base64 格式的字符串,并打包到 js 中,对⼩体积的图片⽐较合适,⼤图⽚不合适。

1.安装:

npm install --save-dev url-loader

2.然后在 webpack.config.js 中进行配置

rules: [
  ...,
	{
		test: /\.(png|jpe?g|gif)$/,
    use: {
      loader: "url-loader",
      options: {
        // placeholder 占位符 [name] 源资源模块的名称
        // [ext] 源资源模块的后缀
        name: "[name]_[hash].[ext]",
        //打包后的存放位置
        outputPath: "./images"
        // 打包后文件的 url
        publicPath: './images',
        // 小于 100 字节转成 base64 格式
        limit: 10000
      }
    }
	}
]

3.打包:./node_modules/.bin/webpack

注意:图片大于limit 设置的大小,就不会变成base64字符串,小于设置的大小就会在打包的文件中显示图片错误,变成字符串;如果变成字符串,图片就销毁了,想要再次使用必须把整个url-loader都注释;

3-5 css-loader

分析 css 模块之间的关系,并合成⼀个 css

1.安装:

npm install --save-dev css-loader

2.然后在 webpack.config.js 中进行配置:

rules: [
  ...,
	{
		test: /\.css$/,
    use: {
      loader: "css-loader",
      options: {
  			// 启用/禁用 url() 处理  true 图片可以平铺  false就显示一张图
  			url: true,
  			// 启用/禁用 @import 处理
  			import: true,
        // 启用/禁用 Sourcemap
        sourceMap: false
      }
    }
]

3.在src/cs.css

body{
    background:cyan;
}

4.index.js

import  cs  from "./cs.css";
console.log(cs[0][1]);  //js文件写的内容 body{background:cyan}
let sty=document.createElement('style');  //创建style标签
sty.innerHTML=cs[0][1]            //把输出的内容放到style中
document.head.appendChild(sty);   ////添加到header中

5.打包:./node_modules/.bin/webpack

6.运行:html 背景变成cyan颜色;

3-6 style-loader

把 css-loader 生成的内容,用 style 标签挂载到⻚面的 head 中

1.安装:

npm install --save-dev style-loader

2.然后在 webpack.config.js 中进行配置:

rules: [
  ...,
	{
		test: /\.css$/,
        use: ["style-loader", "css-loader"]
		
	}
]

3.cs.css

body{
    background:cyan;
}

4.index.js

import  cs  from "./cs.css";
console.log(cs); 

5.打包:./node_modules/.bin/webpack

6.运行: html 背景颜色变成cyan颜色

  1. use: [“style-loader”, “css-loader”]解析:

同一个任务的 loader 可以同时挂载多个,处理顺序为:从右到左,也就是先通过 css-loader 处理,然后把处理后的 css 字符串交给 style-loader 进行处理

代码示意:

rules: [
  ...,
	{
		test: /\.css$/,
    use: [
  		{
  			loader: 'style-loader',
  			options: {}
  		},
      'css-loader'
		]
	}
]

3-7 sass-loader

1.解释:1把 sass 语法转换成 css ,依赖 node-sass 模块
2安装:

npm install --save-dev sass-loader node-sass

3.在webpack.config.js在里配置:

module.exports = {
				.............,
				module:{
					rules:[
						{test:/\.scss/,
                         use:["style-loader","css-loader","sass-loader"]
                        }
					]
				}
			}

4.打包:./node_modules/.bin/webpack

5.Plugins(插件)

解析plugins:

扩展 webpack 本身的一些功能,它们会运行在各种模块解析完成以后的打包编译阶段,比如对解析后的模块文件进行压缩等里面有很多插件;

5-1 HtmlWebpackPlugin

1.解释:在打包后,会自动生成html文件,并且会把打包生成的js也引进去.

2.安装:

npm install --save-dev html-webpack-plugin

3.在webpack.config.js里面配置

const HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports={
	...
	  //插件
    plugins:[
        new HtmlWebpackPlugin({
            title:"my  App",
            filename: "app.html",   //打包后的名字
            template: "./public/index.html"  //原文件的文件路径

        }) 
    ]
}
  1. .public//index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><%=htmlWebpackPlugin.options.title%></title>
</head>
<body>
    
</body>
</html>

5.打包: ./node_modules/.bin/webpack

6.运行 html文件

注意:在 html 模板中,可以通过 <%=htmlWebpackPlugin.options.XXX%> 的方式获取配置的值

5-2clean-webpack-plugin

1 .解释:每次打包前都把之前的内容删除了,只留当前刚打包的文件

2.安装:

npm install --save-dev clean-webpack-plugin

3.在webpack.config.js里面配置

const {CleanWebpackPlugin} = require('clean-webpack-plugin');
module.exports={
     output:{
        path:path.resolve(__dirname,'dist'),
        filename:"public/js/app.js"
    },
    moudle:{
        reles:[
             {
                test: /\.(png|jpe?g|gif)$/i, 
                use:{
                    loader:'file-loader',
                    options:{
                        //都是占位符
                        //'[path] : 路径
                        //[name]   : 文件名
                        //.[ext]   :后缀
                      //  name: "[path][name].[ext]",
                          //打包后的存放位置
                          //相对的是全局的outputPath
                        outputPath: "/public/image",
                         // 打包后文件的 url
                        publicPath: './public/image',
                        }
                    } 
            },
        ]
    }
    plugins:[
       plugins:[
        new HtmlWebpackPlugin({
            title:"my  App",
            filename: "app.html",   //打包后的名字
            template: "./public/index.html"  //原文件的文件路径

        }),
           new CleanWebpackPlugin(),
        ]
}
 

4.打包: ./node_modules/.bin/webpack

5.运行 html 效果:把压缩后的文件放在dist/public/index.html dist/public/js/index.js 把图片放在dist/public/image

5-3 mini-css-extract-plugin

1 提取 CSS 到一个单独的文件中

2 安装:

npm install --save-dev mini-css-extract-plugin

3 在webapck.config.js里配置:

const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports={
    module:{
        reles:[
            {
                test: /\.css$/,
                use: [
                    MiniCssExtractPlugin.loader,
                    'css-loader',
                ],
            }
        ],
        //插件
        plugins:[
            new MiniCssExtractPlugin({
            filename: 'public/css/app.css'  //打包完在public/css/app.css
        }),
        ]
    }
 
    
}

4 cs.css

body{
    background:cyan;
    /* background:url('../src/data/a.png'); */
     background:url('./data/a.png')    找到打包前图片的路径

}

5 打包: ./node_modules/.bin/webpack

6 运行:html

6.WebpackDevServer(热更新)

1.解释:每次代码写完都要重新打包,浪费时间,换需要多次刷新浏览器,可以通过安装webpackdevserver来解决;

2.安装:

npm install --save-dev webpack-dev-server

3.在package.json里配置:

"script":{
     "server": "webpack serve --open"
}

4.在webpack.config.json配置

moudule.exports={
   ...
     devServer: {
        // 生成的虚拟目录路径
        contentBase: "./dist",
          openPage:'app.html',
          //打开网站时所在的页面
         index:'app.html',
        // 自动开启浏览器
        open: true,
        // 端口
        port: 8080
      }
}

注意:config.json 文件修改之后需要重新启动项目,才会生效; openPage:‘app.html’,和index:‘app.html’, 任意写一个会自动下载一些小的东西所以最好两个一起用

在终端运行:npm run server 直接出现一个端口页面

7. Hot Module Replacement:

1.解释: 当代吗发生变化是,使用live reload 会刷新整个页面,这样会节省了手动刷新的时间,但是如果只刷新一部分内容,但是他整个页面都会重新刷新.Hot Module Replacement:的核心就是局部更新,不会全部刷新,只会改我们要改的地方;

2.webpack.config.json配置

module.exports = {
  ...,
  devServer: {
  	// 生成的虚拟目录路径
  	contentBase: "./dist",
  	// 自动开启浏览器
  	open: true,
  	// 端口
  	port: 8081,
  	// 开启热更新
  	hot:true,
  	// 即使 HMR 不生效,也不去刷新整个页面(选择开启)
    hotOnly:true,
  	proxy: {
      '/api': {
      	target: 'http://localhost:8787'
    	}
    }
	}

3.运行: npm run server

注意当入口文件发生改变,整个热面不全部重新刷新,只会局部刷新,页面不会产生闪烁问题
总结:
我学到了loader是为了解析解决除了js其他类型的文件而出来的;
loader特别强大,只需要安装,配置,打包就可以解决;
还学习了插件,插件对前端的作用真的太大了,减轻了技术人员的压力;

Webpack中Loader和Plugin的区别 LoaderLoader 是用于处理和转换模块的工具。它将非 JavaScript 文件(如 CSS、图片、TypeScript 等)转换为可以被 JavaScript 处理的模块。主要用于文件的预处理和转换。PluginPlugin 是用于扩展 Webpack 功能的工具,可以在构建过程中执行各种任务,如优化构建、管理输出文件、注入环境变量等。主要用于执行更复杂的操作和构建过程的管理。Loader 和 Plugin 是 Webpack 中不可或缺的两个组件。 阅读详情

相关推荐

md-loader:一款使用webpack开发的用于markdown文件转换的loader

md-loader 一款使用webpack开发的用于markdown文件转换的loader webpack快速上手 初始化package.json webpack为npm的工具模块 yarn init --yes yarn add webpack webpack-cli --dev 或者写入package.json的scripts中 使用yarn build yarn webpack yarn build

webpack使用raw-loader内联静态资源失效

raw-loader内联静态语法应html-webpack-plugin导致失效的解决方案。

weixin_43877368的博客 414

《科研伦理与学术规范》期末考试答案2023

26单选(2 分)某学术杂志的评稿人同时是某高校相关专业的硕士生导师,在评判一个稿件的时候,他发现该作者研究的题目很有价值, 他便一边压下这个稿子,一边将稿子的纲要传给自己门下的硕士生, 指导他们使用这个题目独立写出一篇论文,并帮助他们发表在其他期 刊上。D.要善待实验动物,是指在饲养管理和使用实验动物过程中,要采取有效措施,使实验动物免遭不必要的伤害、饥渴、不适、惊恐、折磨、疾病和疼痛,保证动物能够实现自然行为,受到良好的管理与照料,为其提供清洁、舒适的生活环境。张某在压力之下不得不屈从。

Glenseeds的博客 4万+

轻装上阵:Webpack 5 & Vite资源优化

本文通过一个最小的Webpack和vite项目demo,举例演示了在webpack5中采用内置属性将静态资源模块以不同形式导出,并且说明了在vite中如何处理静态资源模块。

m0_46259935的博客 1107

Setup&Hold互卡问题和Useful Skew的影响

setup和hold互卡问题分析

godping的博客 5095

网易 广州 梦幻西游端游 客户端社招笔试题 2024

4道算法题,时间2小时,牛客网笔试注:采用OJ模式,需要自己处理输入、输出。

z2014z的博客 1813

Webpack 插件 raw-loader,可将代码文件导出为字符串模板

webpack的加载程序,允许将文件作为字符串导入。

前端技术 2382

基于Opencv+Mediapipe的头部姿态检测

在学生课堂专注度检测项目中,可以通过学生头部姿态来确定学生注意力方向,从而判断其是否专注于课堂。

weixin_67879842的博客 2336

raw-loader 使用教程

`raw-loader` 是一个开源的 Webpack 加载器,允许你将文件作为字符串导入。它可以将任何文件内容转换为 JavaScript 模块,主要用于加载文本文件,如 `.txt`、`.md` 等。 ## 项目快速启动 ### 安装 首先,你需要安装 `raw-loader`: ```bash npm install raw-loader --save-dev ``` ### 配置...

gitblog_00999的博客 1133

WINDOWS下SIP拨号的实现

在WIN10上拨打SIP电话  由于我的交换原理实验有一个是关于SIP的抓包的。而之前从未接触过SIP,所以在如何完成一次SIP拨号上遇到了不少问题,查了好多资料都没有完整的或者写的很清楚的,这里就对那些资料做一个总结,给出一个比较完善的解决方案,一来是记录此次实验的收获,而来也可能为其他有同样困惑的人解惑。  废话不多说直接开始。首先是下载一个可以拨打SIP电话的客户终端,这里我选择的是MicroSIP, 下载红圈内的文件,下载好之后直接一路安装即可,没有什么特别注意的地方。  安装好客户端之后,就需要注

weixin_43918519的博客 3808

Camunda 7.x 系列【67】实战篇之撤销流程

撤销流程 即撤销当前已发起的流程实例。这是一个常见的需求,Camunda本身不提供直接的方法来撤销正在执行的流程,需要自定义处理逻辑。

记录知识、锤炼自我 1378

webpack里的loader是什么,干嘛的,webpack和loader是什么关系?

1.首先,webpack干嘛的?看图: webpack就是打包的,就不啰嗦啦 2.那loader是什么玩意儿?在weboack的世界里,干了点什么? 先看看官网的解释,【https://www.webpackjs.com/concepts/#loader】 官网说了:loader让 webpack 能够去处理那些非 JavaScript 文件(webpack 自身只理解 JavaScript)。loader 可以将所有类型的文件转换为 webpack 能够处理的有效模块,然后你就可以利用 we.

paopaosama的博客 3651

《C++面向对象程序设计》✍千处细节、万字总结(建议收藏)

《C++面向对象程序设计》✍千处细节、万字总结 文章目录《C++面向对象程序设计》✍千处细节、万字总结一、面向对象程序设计二、C++基础2.1 C++的产生和特点2.2 一个简单的C++示例程序2.3 C++在非面向对象方面对C语言的扩充输入和输出cinconst修饰符void型指针内联函数带有默认参数值的函数函数重载作用域标识符"::"强制类型转换new和delete运算符引用三、类和对象(一)3.1 类的构成3.2 成员函数的定义3.3 对象的定义和使用3.4 构造函数与析构函数构造函数成员初始化列表

像写诗一样优雅地写代码~ 78万+

vue文件里在style的样式需要什么loader_webpack编译loader大全

在前端开发中,除了熟练使用框架,我们还要使用一样技术就是webpack,webpack相信很多小伙伴都多少有些了解,但是很多人可能对webpack不是特别熟练,只是知道基本的loader配置,甚至自己配置了loader都不知道这个loader的作用。我也曾经遇到过这样的问题,但是各种百度和google都没能找到特别全的loader介绍,所以我花一些时间整理了所有的loader终于解决了自己的痛点,...

weixin_39528029的博客 436

借助Claude实现Playwright的自动化(MCP Server)

MCP Server自己开发也是可以的,现在也有很多开箱即用的MCP Server,可以在https://github.com/modelcontextprotocol/servers中查找。

Criss@陈磊 4229

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

webpack里的url-loader中limit作用

webpack里的url-loader中limit作用 将小的,即低于limit的图片进行base64编码,以减少http请求 将图片文件转换为base64编码并载入浏览器能够减少http请求数,但是增大了js或html文件的体积,如果图片在项目中的重用度较高,那么每处引用都会生成base64编码,造成了代码的冗余。通过http请求载入到浏览器的文件可以缓存到本地,当图片在项目中的重用度...

岁月如歌去,十年弹指间 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

vue文件里在style的样式需要什么loader_Webpack的核心概念-loader与plugin

1. Webpack的loader1.1 问题引入之前的项目中我们打包的对象都是JS文件,那假设我们需要import一个图片应该怎么做呢,如果仍然使用之前的方式进行打包就会报错:Module parse failed:Unpexpected character ...很明显webpack不能识别图片文件,这里就需要借助loader来告诉webpack如何打包图片文件了1.2 loader是什么Lo...

weixin_39664585的博客 184

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

vue文件里在style的样式需要什么loader_webpack 常见loader原理剖析,动手实现一个md2html的loader

本文会带你简单的认识一下webpack的loader,动手实现一个利用md转成抽象语法树,再转成html字符串的loader。顺便简单的了解一下几个style-loader,vue-loader,babel-loader的源码以及工作流程。loader简介webpack允许我们使用loader来处理文件,loader是一个导出为function的node模块。可以将匹配到的文件进行一次转换,同时l...

weixin_39975683的博客 246

webpack使用html-loader打包html里图片报错

标题if (!scriptUrl) throw new Error(“Automatic publicPath is not supported in this browser”); 原因:url-loader默认使用es6,而html-loader把html里面的图片转成了common.js。所有不能被url-loader识别 解决方案: 1.在url-loader配置里面添加 esModule:false { //问题:处理不了html里面的图片

mywxtjj的博客 1488

Vue/React项目里axios报‘Module parse failed’?别慌,可能是Webpack配置里少了这个关键loader

本文深入解析Vue/React项目中axios报'Module parse failed'错误的根本原因及解决方案。针对Webpack配置中缺少关键loader导致无法转译node_modules/axios内ES6+代码的问题,提供了三种精准配置方案,并对比了不同方案的性能与适用场景,帮助开发者彻底解决这一常见构建错误。

cuanchuwei1207的博客 367

vue文件里在style的样式需要什么loader_Vue学习笔记之Webpack中css、less、图片等文件处理...

一、webpack中使用css文件:loader是webpack中一个非常核心的概念,去转化webpack不能转化或打包的文件。安装loader:官网介绍:安装: cnpm install --save-dev css-loaderloader配置:然后再进行打包动作:npm run buildPS:css-loader只负责将css文件进行加载,所以还需要style-loader负责将样式添加到...

weixin_39715997的博客 321

记一个webpack loader顺序没写对的报错

记一个webpack loader顺序没写对的报错 发现配置了loader还是报错 查阅后发现loader书写规则错误引起的 改成如下打包成功 总结:在webpack中,loader的执行顺序是从右到左,从下到上,stylus-loader处理好stylus文件后向上传递给css-loader处理css文件,再向上传递给style-loader处理style文件,每个loader互不影响,各...

nightwishh的博客 495

webpack中使用loader加载css、less、sass样式

目的:因为传统的link加载css样式会发起二次请求,所以我们需要在webpack中使用loader加载css样式 准备:你需要准备一个已经配置好的webpack项目:https://blog.youkuaiyun.com/Tomwildboar/article/details/82141824 配置cssloader  第一步:安装相对应的插件 (cnpm i style-loader css-loa...

小道仙的后宫 1531

webpack.config.js用来写测试的基本配置,引入了css-loader以及typescript

一个较为通用的webpack.config.js配置 本小白在学习菜鸟教程的webpack教程时,照着教程上面写会报很多错,解决了这个错误还会有下一个错误,简直是没完没了,一直在百度,解决了几个bug之后发现了这个 本章节基于 Webpack3.0 测试通过。 突然想打人… 现在的版本基本上是4.35,在node下输入"webpack -v"就可以查看版本号,所以有些东西就不兼容了,于是就到w...

js_push的博客 886

前端学习案例2-webpack什么是loader

前端

qq_41632427的博客 111

在js里拼接了html 但是样式不显示了怎么办_Webpack4 学习 - 03:loader 打包静态资源(样式)...

使用 style-loader,css-loader 打包 css 文件首先在src目录下创建一个 index.css 文件,内容如下:.this_style { color: red;}修改 index.js 文件内容如下:import './index.css';var root = document.getElementById('root');var wp = document.creat...

weixin_28630185的博客 722
上一篇: 介绍webpack
下一篇: 基础小白学会安装Git
starry__sty
博客等级 码龄6年 30粉丝 120原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值