CSS3教程
本课程需要具备的知识: HTML5教程 1 CSS简介在 HTML5 教程中,已经介绍了前端页面的构成,主要包括: HTML:用于描述页面的结构 CSS:用于控制页面中元素的样式 JavaScript:用于响应用户操作 通过 CSS,我们可以让页面上的内容和样式分离,使得网页的内容可以被不同的样式装饰,最终以不同的方式显示,而无需改变HTML的结构,从而提高网页的可维护性和可读性。就像王者荣耀中,一个英雄可以有很多的皮肤,使用不同的皮肤可以显式不同的效果,CSS就像网页的皮肤,相同的 HTML 使用不同的CSS样式,可以让网页显示不同的效果。 1.1 CSS3的新特性简单了解一下,可以跳过… 强大的选择器:CSS3 新增了许多实用的选择器,如属性选择器、伪类选择器和伪元素选择器等。例如input[type="text"]可以直接选择所有类型为文本的输入框;:hover伪类可以在鼠标悬停时改变元素的样式;::before和::after伪元素可以在元素内容之前或之后插入生成的内容。 丰富的文本效果:提供了更多的文本样式和排版功能,如text-shado...
HTML5教程
前端简介现在我们来学习HTML5的课程,HTML是做什么的呢,我还是哔哔两句吧。 1.1 软件架构分类我们平时开发的软件主要有两种: C/S架构 和 B/S架构 1 什么是C/S架构C/S架构全称为Client/Server,也就是客户端/服务器架构。 用户需要下载客户端的软件,例如QQ,微信,还有手机里的各种App 等软件,都需要下载软件进行安装,我们下载安装的就是客户端。通过使用客户端和服务器进行连接交互。 2 什么是B/S架构B/S架构全称为Browser/Server,也就是浏览器/服务器架构。 Browser指的就是浏览器,用户打开浏览器就能访问网页,不需要下载客户端,例如访问京东、淘宝等网站。 通过浏览器请求服务器,服务器返回网页的内容。 其实B/S架构也是基于C/S架构的,因为浏览器也是一个客户端嘛。 3 B/S 架构的优点相较于C/S架构系统,B/S 架构的网页有如下一些优点: 不需要安装客户端,打开浏览器就能访问; 无需更新,网页如果有更新,我们重新访问网页就是最新的版本; 跨平台,在任何操作系统,使用浏览器都可以访问。 HTML 就是用来开发网页的,那么 ...
数据结构与算法
Python语言基础 基本数据结构Python 提供了丰富的内置数据结构,如 list、deque、dict、set 等。以下是一些常用数据结构的介绍及其使用方法。 列表 list(动态数组)list 是 Python 的可变序列类型,可以用作动态数组。 初始化方法: 12345678910111213# 初始化一个空列表nums = []# 初始化一个包含元素 1, 3, 5 的列表nums = [1, 3, 5]# 初始化大小为 n,元素都为0的列表n = 10nums = [0] * n# 二维列表,m 行 n 列,元素都为 1m, n = 3, 4matrix = [[1] * n for _ in range(m)] Python 列表的常用方法: 12345678910111213141516171819202122232425262728293031323334353637383940nums = [0] * 10# 输出:Falseprint(len(nums) == 0)# 输出:10print(len(nums))# 在列表尾部插入一个元素 20nums.a...
计算机视觉
图像增广 :label:sec_image_augmentation :numref:sec_alexnet提到过大型数据集是成功应用深度神经网络的先决条件。图像增广在对训练图像进行一系列的随机变化之后,生成相似但不同的训练样本,从而扩大了训练集的规模。此外,应用图像增广的原因是,随机改变训练样本可以减少模型对某些属性的依赖,从而提高模型的泛化能力。例如,我们可以以不同的方式裁剪图像,使感兴趣的对象出现在不同的位置,减少模型对于对象出现位置的依赖。我们还可以调整亮度、颜色等因素来降低模型对颜色的敏感度。可以说,图像增广技术对于AlexNet的成功是必不可少的。本节将讨论这项广泛应用于计算机视觉的技术。 12345%matplotlib inline import torch import torchvision from torch import nn from d2l import torch as d2l 常用的图像增广方法在对常用图像增广方法的探索时,我们将使用下面这个尺寸为的图像作为示例。 123d2l.set_figsize() img = d2l.Ima...
优化算法
优化和深度学习 本节将讨论优化与深度学习之间的关系以及在深度学习中使用优化的挑战。对于深度学习问题,我们通常会先定义损失函数。一旦我们有了损失函数,我们就可以使用优化算法来尝试最小化损失。在优化中,损失函数通常被称为优化问题的目标函数。按照传统惯例,大多数优化算法都关注的是最小化。如果我们需要最大化目标,那么有一个简单的解决方案:在目标函数前加负号即可。 优化的目标尽管优化提供了一种最大限度地减少深度学习损失函数的方法,但本质上,优化和深度学习的目标是根本不同的。前者主要关注的是最小化目标,后者则关注在给定有限数据量的情况下寻找合适的模型。在 :numref:sec_model_selection中,我们详细讨论了这两个目标之间的区别。例如,训练误差和泛化误差通常不同:由于优化算法的目标函数通常是基于训练数据集的损失函数,因此优化的目标是减少训练误差。但是,深度学习(或更广义地说,统计推断)的目标是减少泛化误差。为了实现后者,除了使用优化算法来减少训练误差之外,我们还需要注意过拟合。 12345%matplotlib inline import numpy as np imp...
注意力机制
注意力提示 :label:sec_attention-cues 注意力不是免费的。注意力是稀缺的,而环境中的干扰注意力的信息却并不少。比如人类的视觉神经系统大约每秒收到位的信息,这远远超过了大脑能够完全处理的水平。幸运的是,人类的祖先已经从经验(也称为数据)中认识到“并非感官的所有输入都是一样的”。在整个人类历史中,这种只将注意力引向感兴趣的一小部分信息的能力,使人类的大脑能够更明智地分配资源来生存、成长和社交,例如发现天敌、找寻食物和伴侣。 生物学中的注意力提示注意力是如何应用于视觉世界中的呢?这要从当今十分普及的双组件(two-component)的框架开始讲起:这个框架的出现可以追溯到19世纪90年代的威廉·詹姆斯,他被认为是“美国心理学之父” :cite:James.2007。在这个框架中,受试者基于非自主性提示和自主性提示有选择地引导注意力的焦点。 非自主性提示是基于环境中物体的突出性和易见性。想象一下,假如我们面前有五个物品:一份报纸、一篇研究论文、一杯咖啡、一本笔记本和一本书,就像 :numref:fig_eye-coffee。所有纸制品都是黑白印刷的,但咖啡杯是红...
现代循环神经网络
门控循环单元(GRU) :label:sec_gru 在 :numref:sec_bptt中,我们讨论了如何在循环神经网络中计算梯度,以及矩阵连续乘积可以导致梯度消失或梯度爆炸的问题。下面我们简单思考一下这种梯度异常在实践中的意义: 我们可能会遇到这样的情况:早期观测值对预测所有未来观测值具有非常重要的意义。考虑一个极端情况,其中第一个观测值包含一个校验和,目标是在序列的末尾辨别校验和是否正确。在这种情况下,第一个词元的影响至关重要。我们希望有某些机制能够在一个记忆元里存储重要的早期信息。如果没有这样的机制,我们将不得不给这个观测值指定一个非常大的梯度,因为它会影响所有后续的观测值。 我们可能会遇到这样的情况:一些词元没有相关的观测值。例如,在对网页内容进行情感分析时,可能有一些辅助HTML代码与网页传达的情绪无关。我们希望有一些机制来跳过隐状态表示中的此类词元。 我们可能会遇到这样的情况:序列的各个部分之间存在逻辑中断。例如,书的章节之间可能会有过渡存在,或者证券的熊市和牛市之间可能会有过渡存在。在这种情况下,最好有一种方法来重置我们的内部状态表示。 在学术界已经提出了许多...
循环神经网络
序列模型:label:sec_sequence 统计工具处理序列数据需要统计工具和新的深度神经网络架构。为了简单起见,我们以 :numref:fig_ftse100所示的股票价格(富时100指数)为例。 :width:400px:label:fig_ftse100 其中,用表示价格,即在时间步(time step)时,观察到的价格。请注意,**对于本文中的序列通常是离散的,并在整数或其子集上变化**。假设一个交易员想在日的股市中表现良好,于是通过以下途径预测: 自回归模型为了实现这个预测,交易员可以使用回归模型,例如在 :numref:sec_linear_concise中训练的模型。仅有一个主要问题:输入数据的数量,输入本身因而异。也就是说,输入数据的数量这个数字将会随着我们遇到的数据量的增加而增加,因此需要一个近似方法来使这个计算变得容易处理。本章后面的大部分内容将围绕着如何有效估计展开。简单地说,它归结为以下两种策略。 第一种策略,假设在现实情况下相当长的序列可能是不必要的,因此我们只需要满足某个长度为的时间跨度,即使用观测序列。当下获得的最直接的好处就是参数的数量总是不...
现代卷积神经网络
深度卷积神经网络(AlexNet) :label:sec_alexnet 在LeNet提出后,卷积神经网络在计算机视觉和机器学习领域中很有名气。但卷积神经网络并没有主导这些领域。这是因为虽然LeNet在小数据集上取得了很好的效果,但是在更大、更真实的数据集上训练卷积神经网络的性能和可行性还有待研究。 计算机视觉研究人员会告诉一个诡异事实————推动领域进步的是数据特征,而不是学习算法。计算机视觉研究人员相信,从对最终模型精度的影响来说,更大或更干净的数据集、或是稍微改进的特征提取,比任何学习算法带来的进步要大得多。 学习表征另一种预测这个领域发展的方法————观察图像特征的提取方法。在2012年前,图像特征都是机械地计算出来的。事实上,设计一套新的特征函数、改进结果,并撰写论文是盛极一时的潮流。SIFT :cite:Lowe.2004、SURF :cite:Bay.Tuytelaars.Van-Gool.2006、HOG(定向梯度直方图) :cite:Dalal.Triggs.2005、bags of visual words和类似的特征提取方法占据了主导地位。 另一组研究人员,...
卷积神经网络
从全连接层到卷积 _卷积神经网络_(convolutional neural networks,CNN)是机器学习利用自然图像中一些已知结构的创造性方法。 不变性 _平移不变性_(translation invariance):不管检测对象出现在图像中的哪个位置,神经网络的前面几层应该对相同的图像区域具有相似的反应,即为“平移不变性”。 _局部性_(locality):神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远区域的关系,这就是“局部性”原则。最终,可以聚合这些局部特征,以在整个图像级别进行预测。 多层感知机的限制多层感知机的限制首先,多层感知机的输入是二维图像,其隐藏表示在数学上是一个矩阵,在代码中表示为二维张量。其中和具有相同的形状。为了方便理解,我们可以认为,无论是输入还是隐藏表示都拥有空间结构。 使用$[\mathbf{X}]{i, j}和[\mathbf{H}]{i, j}分别表示输入图像和隐藏表示中位置(ij)处的像素。为了使每个隐藏神经元都能接收到每个输入像素的信息,我们将参数从权重矩阵(如同我们先前在多层感知机中所做的那...







