E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
动手学深度学习
李沐
动手学深度学习
每周学习汇报 2021/11/8
03安装前言之前我一直使用的是Windows+Ubuntu20.04双系统,虽然Linux系统可能更适合做编程,但是因为读研也并不是纯编程,也需要处理其他很多事情,所以往往也需要用到Windows系统,平时使用的时候就在两者之间来回切换,渐渐感觉十分不方便。后来,我把电脑重开做成了Win11单系统。作为一名程序猿,只有Windows系统,可能是不够的。于是在目前的时点,我有几个选择:一是VMare
Lord12Snow3
·
2021-11-08 19:38
华南师大
-
每周汇报
深度学习
人工智能
python
pytorch
numpy
【笔记】
动手学深度学习
- Resnet
resnet就是在前面几个卷积网络的基础上的延续,基本思想还是卷积堆叠。之前学弟BN(批量归一化)可以解决网络层数太深而出现的梯度消失问题,但是如果网络层数太多,这个方法也是不太管用的。所以就提出了resnet。resnet的主要特点就是残差块,残差块的目的就是为了保存之前当前层未训练之前的参数的特征,将这些参数和训练之后的数据一同传入到之后的层当中。残差块具体解释如下:黑色图中F(x)可以理解为
echo_gou
·
2021-11-08 10:44
#
动手学深度学习
深度学习
李沐《
动手学深度学习
v2》学习笔记(三):Fashion-MNIST 数据集
李沐《
动手学深度学习
v2》学习笔记(三):Fashion-MNIST数据集目录:李沐《
动手学深度学习
v2》学习笔记(三):Fashion-MNIST数据集一、Fashion-MNIST数据集简介二、了解数据集三
~宪宪
·
2021-11-07 22:28
PyTorch深度学习
深度学习
pytorch
python
李沐《
动手学深度学习
v2》学习笔记(二):线性回归和实现
李沐《
动手学深度学习
v2》学习笔记(二):线性回归和实现目录:李沐《
动手学深度学习
v2》学习笔记(二):线性回归和实现一、线性回归概述二、构建线性模型和优化算法(Optimal)1.最小二乘法(LSM)
~宪宪
·
2021-11-04 00:46
PyTorch深度学习
深度学习
线性回归
pytorch
《
动手学深度学习
》图像分类数据集(Fashion-MNIST)
图像分类数据集(Fashion-MNIST)图像分类数据集(Fashion-MNIST)获取数据集读取小批量小结参考文献数据集下载图像分类数据集(Fashion-MNIST)在介绍softmax回归的实现前我们先引入一个多类图像分类数据集。它将在后面的章节中被多次使用,以方便我们观察比较算法之间在模型精度和计算效率上的区别。图像分类数据集中最常用的是手写数字识别数据集MNIST[1]。但大部分模型
ZSYL
·
2021-11-03 21:50
深度学习
深度学习
分类
pytorch
动手学深度学习
(pytorch)-总结1
断断续续在b站看了三个星期的《
动手学深度学习
》,这门课真的是太棒了,特别感谢李沐大神!总结一下目前的一些收获。
Deserve_p
·
2021-10-31 23:35
机器学习
深度学习
pytorch
人工智能
李沐《
动手学深度学习
v2》学习笔记(一):PyTorch基础与线性代数
李沐《
动手学深度学习
v2》学习笔记(一):PyTorch基础与线性代数目录:李沐《
动手学深度学习
v2》学习笔记(一):PyTorch基础与线性代数一、数据特征1.数据格式2.PyTorch基本操作2.1
~宪宪
·
2021-10-24 17:32
PyTorch深度学习
1024程序员节
深度学习
pytorch
python
动手学深度学习
(三十三)——样式迁移
文章目录一、基于CNN的样式迁移1.直观理解样式迁移2.基于CNN的样式迁移方法二、样式迁移实现1.阅读内容和样式图像2.预处理和后处理3.抽取图像特征4.定义损失函数4.1内容损失4.2样式损失4.3总变差损失4.4总损失加权5.初始化合成图像6.模型训练三、总结一、基于CNN的样式迁移1.直观理解样式迁移 如果你是一位摄影爱好者,你也许接触过滤镜。它能改变照片的颜色样式,从而使风景照更加锐利
留小星
·
2021-10-21 09:55
动手学深度学习:pytorch
深度学习
计算机视觉
人工智能
样式迁移
CNN样式迁移基础
动手学深度学习
(三十二)——全连接卷积神经网络FCN
文章目录1.什么是全卷积神经网络(FullyConvolutionalNetworks)2.FCN是语义分割的奠基性工作3.使用FCN进行语义分割3.1模型构建3.2初始化转置卷积层3.3读取数据集3.4训练3.5预测4.总结参考:【1】https://zh-v2.d2l.ai/【2】https://zhuanlan.zhihu.com/p/30195134【3】https://www.sohu.
留小星
·
2021-10-18 21:51
动手学深度学习:pytorch
深度学习
pytorch
python
FCN
全卷积神经网络
动手学深度学习
(三十)——语义分割概念及数据加载
文章目录一、什么是语义分割二、应用三、PascalVOC2012语义分割数据集3.1数据加载3.2数据预处理3.3自定义语义分割数据集类3.4整合全部组件简单认识什么是语义分割,并加载语义分割数据集一、什么是语义分割在像素级别上的分类:属于同一类的像素都要归为一类语义分割和实例分割二、应用背景虚化路面分割三、PascalVOC2012语义分割数据集http://host.robots.ox.ac.
留小星
·
2021-10-18 09:35
动手学深度学习:pytorch
深度学习
pytorch
caffe
动手学深度学习
(三十一)——转置卷积
文章目录一、转置卷积1.1转置卷积基本操作1.2为什么称之为"转置"1.3实现二维转置卷积和调用高级API实现更高维度转置卷积1.4填充、步幅和多通道1.4.1填充1.4.2步幅1.4.3多通道1.5转置卷积与矩阵变换的关系1.6转置卷积和卷积二、小结一、转置卷积 通常情况下,卷积神经网络如卷积层和池化层都会减少下采样输入图像的空间维度(高和宽)。然而如果输入和输出图像的空间维度相同,在以像素分
留小星
·
2021-10-17 21:32
动手学深度学习:pytorch
pytorch
深度学习
神经网络
基于OneFlow实现Unfold、Fold算子
撰文|zzk1从卷积层说起熟悉CNN的小伙伴应该知道卷积是一个很常用也很重要的操作,CNN里的卷积和信号处理的卷积并不是一回事,CNN的卷积是做一种二维的互相关运算,以《
动手学深度学习
》5.1章为示例:
OneFlow深度学习框架
·
2021-10-12 11:01
卷积
算法
python
深度学习
java
深度学习基础--激活函数
深度学习基础–激活函数最近在阅读一本书籍–Dive-into-DL-Pytorch(
动手学深度学习
),链接:https://github.com/newmonkey/Dive-into-DL-PyTorch
小小城序员
·
2021-10-10 17:09
笔记
pytorch
深度学习
pytorch
深度学习
神经网络
深度学习基础--多层感知机(MLP)
深度学习基础–多层感知机(MLP)最近在阅读一本书籍–Dive-into-DL-Pytorch(
动手学深度学习
),链接:https://github.com/newmonkey/Dive-into-DL-PyTorch
小小城序员
·
2021-10-09 20:45
笔记
pytorch
深度学习
pytorch
深度学习
神经网络
深度学习基础--SOFTMAX回归(单层神经网络)
深度学习基础–SOFTMAX回归(单层神经网络)最近在阅读一本书籍–Dive-into-DL-Pytorch(
动手学深度学习
),链接:https://github.com/newmonkey/Dive-into-DL-PyTorch
小小城序员
·
2021-10-05 22:13
pytorch
深度学习
笔记
神经网络
pytorch
深度学习
李沐
动手学深度学习
:线性回归
#!pipinstallmatplotlib#!pipinstall-Ud2l%matplotlibinlineimportrandomimporttorchfromd2limporttorchasd2l#根据带有真实噪声的线性模型构造一个人造数据集使用线性模型参数w=[2,-3.4]T,b=4.2#和噪声项ε生成数据集及其标签:y=Xw+b+εdefsynthetic_data(w,b,num_
carrotfantacy123
·
2021-10-05 18:30
深度学习
深度学习基础--线性回归(单层神经网络)
深度学习基础–线性回归(单层神经网络)最近在阅读一本书籍–Dive-into-DL-Pytorch(
动手学深度学习
),链接:https://github.com/newmonkey/Dive-into-DL-PyTorch
小小城序员
·
2021-10-02 00:17
笔记
pytorch
深度学习
pytorch
深度学习
神经网络
LeNet网络实现训练fashion-mnist数据集
所用代码为李沐所编写的《
动手学深度学习
》《
动手学深度学习
》—
动手学深度学习
2.0.0-alpha2doc
小刘研CV
·
2021-09-29 20:59
神经网络
深度学习
pytorch
动手学深度学习
(Pytorch)第2章深度学习基础-上
原书籍出处https://raw.githubusercontent.com/OUCMachineLearning/OUCML/master/BOOK/Dive-into-DL-PyTorch.pdf本书GitHub代码链接为:Dive-Into-Deep-Learning-PyTorch-PDF。第2章深度学习基础作为机器学习的一类,深度学习通常基于神经网络模型逐级表示越来越抽象的概念或模式。在
醉一心
·
2021-09-12 19:57
机器学习
pytorch
深度学习
神经网络
读书笔记 |
动手学深度学习
(2)——预备知识
动手学深度学习
(2)——预备知识本文为《
动手学深度学习
》一书的第二章部分,书籍地址机器学习通常需要处理大型数据集。我们可以将数据集视为表,其中表的行对应样本,列对应属性。
捡贝壳的孩子
·
2021-09-01 14:32
深度学习学习笔记
深度学习
机器学习
读书笔记 |
动手学深度学习
——前言
动手学深度学习
——前言本文源自李沐老师的《
动手学深度学习
》,为记录自己从0开始的深度学习入门。一开始可能都不能称之为复写,只能叫做摘抄。
捡贝壳的孩子
·
2021-08-30 10:11
深度学习学习笔记
深度学习
机器学习
神经网络
动手学深度学习
——线性代数
文章目录标量向量矩阵特殊矩阵代码标量简单操作c=a+bc=a⋅bc=sinac=a+b\\c=a\cdotb\\c=sinac=a+bc=a⋅bc=sina长度∣a∣={aifa>0−aotherwise∣a+b∣≤∣a∣+∣b∣∣a⋅b∣=∣a∣⋅∣b∣|a|=\left\{\begin{aligned}a\quadifa>0\\-a\quadotherwise\end{aligned}\rig
杨超越_
·
2021-08-29 23:33
pytorch
线性代数
深度学习
深度学习+pytorch自学笔记(九)——深度卷积神经网络(AlexNet)、使用重复元素的网络(VGG)、网络中的网络(NiN)
参考书籍《
动手学深度学习
(pytorch版),参考网址为:https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter05_CNN/5.1_conv-layerhttps
子非鱼icon
·
2021-08-21 12:27
深度学习自学笔记
python
pytorch
深度学习
卷积神经网络
深度学习+pytorch自学笔记(八)——二维卷积层、填充和步幅、多输入和多输出通道、池化层和卷积神经网络(LeNet)
参考书籍《
动手学深度学习
(pytorch版),参考网址为:https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter05_CNN/5.1_conv-layerhttps
子非鱼icon
·
2021-08-13 18:26
深度学习自学笔记
python
pytorch
深度学习
【学习笔记】
动手学深度学习
2-2.2
动手学深度学习
笔记22.1数据操作张量(tensor)无论使用哪个深度学习框架,它的张量类(在MXNet中为ndarry,在PyTorch和TensorFlow中为Tenor)都与Numpy中的ndarray
华慕
·
2021-08-12 16:33
自用
深度学习
深度学习
动手学深度学习
(十九)——AlexNet:CNN经典网络(二)更深+更大
文章目录1.深度卷积神经网络(AlexNet)的起源1.1学习表征1.2缺少的成分:数据1.3缺少的成分:硬件2.AlexNet模型2.1模型结构2.2激活函数2.3容量控制和预处理2.4总结3.基于Fashion-MNIST数据集应用AlexNet3.1构造及验证AlexNet模型3.2加载及构造输入数据3.3训练AlexNet1.深度卷积神经网络(AlexNet)的起源 在LeNet提出后,
留小星
·
2021-08-10 16:34
动手学深度学习:pytorch
AlexNet
深度卷积神经网络
CNN经典网络结构
pytorch动手深度学习
《
动手学深度学习
》环境搭建教程及避坑指南文章
本文在李沐博士的《
动手学深度学习
》—
动手学深度学习
2.0.0-alpha2documentation(d2l.ai)的基础上进行补充,(由于笔者仅在win系统下进行安装,所以本文不包含Linux和mos
中式小点
·
2021-08-06 18:25
《
动手学深度学习
(Dive into Deeplearning)》(第二版)——第二章 _2.4 微分
《
动手学深度学习
(DiveintoDeeplearning)》(第二版)——第二章_2.4微分第二章预备知识§前情回顾§2.4微分2.4.1导数和微分2.4.2偏导数2.4.3梯度2.4.4链式法则2.4.5
def_Mark_Heng
·
2021-08-05 15:38
《动手学深度学习》自学之路
机器学习
深度学习
人工智能
python
算法
深度学习+pytorch自学笔记(六)——模型选择、欠拟合和过拟合、权重衰减、丢弃法、正向传播、反向传播和计算图、数值稳定性和模型初始化
参考书籍《
动手学深度学习
(pytorch版),参考网址为:https://zh-v2.d2l.ai/chapter_multilayer-perceptrons/index.htmlhttps://tangshusen.me
子非鱼icon
·
2021-08-04 10:13
深度学习自学笔记
python
pytorch
深度学习
算法
动手学深度学习
V2.0(Pytorch)——8.线性回归
8.线性回归8.1线性回归https://www.bilibili.com/video/BV1PX4y1g7KC?t=613这里可以看到,对于每个样本i,i∈[1,n]i,i∈[1,n]i
吨吨不打野
·
2021-08-04 10:16
动手学深度学习pytorch
动手学深度学习
笔记(一)
矩阵计算1.标量导数一般的标量导数表示切线的斜率2.亚导数将导数拓展到不可微的函数。在函数的不可导点,将导数(斜率)取为一个范围内的任意值。如,对于函数:y=∣x∣y=|x|y=∣x∣其导数可以记为:∂∣x∣∂x={1ifx>0−1ifx0\\-1&if\x0ifx00ifx0\\0&if\x0ifx>>x=torch.arange(4.0)>>>xtensor([0.,1.,2.,3.])>>>
上官永石
·
2021-07-30 22:24
动手学深度学习
深度学习
《
动手学深度学习
(Dive into Deeplearning)》(第二版)——第二章 _2.3 线性代数
《
动手学深度学习
(DiveintoDeeplearning)》(第二版)——第二章_2.3线性代数第二章预备知识§前情回顾§2.3线性代数2.3.1标量2.3.2向量2.3.3矩阵2.3.4张量2.3.5
def_Mark_Heng
·
2021-07-27 14:58
《动手学深度学习》自学之路
python
机器学习
深度学习
算法
动手学深度学习
V2.0(Pytorch)——5.线性代数/6.矩阵求导/7.自动求导
5.线性代数视频地址:https://www.bilibili.com/video/BV1eK4y1U7Qy/?spm_id_from=autoNext标量的长度就是标量本身的绝对值a和b是向量,α是标量。关于向量的长度,假设a=(4,5)a=(4,5)
吨吨不打野
·
2021-07-22 17:19
动手学深度学习pytorch
动手学深度学习
(九+)——softmax分类Fashion-MNIST数据集
文章目录一、Fashion-MNIST数据集1.1认识数据集1.2小批量读取数据二、softmax回归从零开始实现2.1初始化模型参数2.2定义softmax函数及网络模型2.3定义交叉熵损失函数2.4训练数据2.5测试模型三、使用pytorch简单地实现softmax回归jupyter编程,更改为pytho脚本请自行修改。整体基于李沐老师的动手学习深度学习-pytorch2021版。下面是个人模
留小星
·
2021-07-18 14:18
动手学深度学习:pytorch
softmax
pytorch
回归模型
李沐动手学深度学习
神经网络
2021-07-11 Kaggle平台的使用
1.背景学习《
动手学深度学习
-李沐》教学时,第一次比赛内容是房价数据预测,使用的数据提交平台是Kaggle。前期也了解过Kaggle平台是有同学来面试,会提到参加Kaggle比赛的某某项目名次。
春生阁
·
2021-07-11 16:07
李沐《
动手学深度学习
》笔记-环境,conda命令
目录0.资源汇总1.课程安装conda常用命令小妙招Tips0.资源汇总1.课程安装#1.先进入python环境,然后查看系统使用的的python环境pythonimportsysprint(sys.executable)#比如/root/anaconda3/bin/python#2.可以确定anaconda安装位置,虚拟环境在/root/anaconda3/envscondacreate-nd2
暄染落墨
·
2021-07-05 10:48
深度学习
python
李沐-《
动手学深度学习
》资料
目录一.书籍及讲课视频二.笔记(按书的章节划分)-----更新中1.前言1.1安装1.2符号2.预备知识2.1数据操作---广播机制2.2数据预处理--课后习题2.2.1分段代码及运行结果2.2.2整体代码一.书籍及讲课视频书籍:http://zh.gluon.ai/视频:https://courses.d2l.ai/zh-v2/视频的课程安排中,这四部分分别代表书上对应的内容、PPT、对应代码、
bbbbbaaaal
·
2021-06-28 22:49
python
深度学习
[
动手学深度学习
-PyTorch版]-5.4卷积神经网络-池化层
5.4池化层回忆一下,在5.1节(二维卷积层)里介绍的图像物体边缘检测应用中,我们构造卷积核从而精确地找到了像素变化的位置。设任意二维数组X的i行j列的元素为X[i,j]。如果我们构造的卷积核输出Y[i,j]=1,那么说明输入中X[i,j]和X[i,j+1]数值不一样。这可能意味着物体边缘通过这两个元素之间。但实际图像里,我们感兴趣的物体不会总出现在固定位置:即使我们连续拍摄同一个物体也极有可能出
蒸饺与白茶
·
2021-06-23 09:58
[
动手学深度学习
-PyTorch版]-5.1卷积神经网络-二维卷积层
5.1二维卷积层卷积神经网络(convolutionalneuralnetwork)是含有卷积层(convolutionallayer)的神经网络。本章中介绍的卷积神经网络均使用最常见的二维卷积层。它有高和宽两个空间维度,常用来处理图像数据。本节中,我们将介绍简单形式的二维卷积层的工作原理。5.1.1二维互相关运算虽然卷积层得名于卷积(convolution)运算,但我们通常在卷积层中使用更加直观
蒸饺与白茶
·
2021-06-19 00:57
Task05:
动手学深度学习
——卷积神经网络
(学习笔记,待补充)本文目录如下:1.卷积神经网络基础1.1二维互相关运算1.2二维卷积层1.3填充和步幅1.4多通道输入和输出1.5池化层几个经典的卷积神经网络2.1LeNet2.2AlexNet2.3VGG-162.4NiN2.5GoogleNet1.卷积神经网络基础1.1二维互相关运算defcorr2d(X,K):H,W=X.shapeh,w=K.shapeY=torch.zeros(H-h
且不了了
·
2021-06-18 21:29
[
动手学深度学习
-PyTorch版]-5.2卷积神经网络-填充和步幅
5.2填充和步幅image.png所以卷积层的输出形状由输入形状和卷积核窗口形状决定。本节我们将介绍卷积层的两个超参数,即填充和步幅。它们可以对给定形状的输入和卷积核改变输出形状。5.2.1填充填充(padding)是指在输入高和宽的两侧填充元素(通常是0元素)。图5.2里我们在原输入高和宽的两侧分别添加了值为0的元素,使得输入高和宽从3变成了5,并导致输出高和宽由2增加到4。图5.2中的阴影部分
蒸饺与白茶
·
2021-06-15 08:23
动手学深度学习
(三)——丢弃法(从零开始)
文章作者:Tyan博客:noahsnail.com|CSDN|注:本文为李沐大神的《
动手学深度学习
》的课程笔记!
SnailTyan
·
2021-06-13 21:06
[
动手学深度学习
-PyTorch版]-5.3卷积神经网络-多输入通道和多输出通道
5.3多输入通道和多输出通道前面两节里我们用到的输入和输出都是二维数组,但真实数据的维度经常更高。例如,彩色图像在高和宽2个维度外还有RGB(红、绿、蓝)3个颜色通道。假设彩色图像的高和宽分别是h和w(像素),那么它可以表示为一个3×h×w的多维数组。我们将大小为3的这一维称为通道(channel)维。本节我们将介绍含多个输入通道或多个输出通道的卷积核。5.3.1多输入通道image.png图5.
蒸饺与白茶
·
2021-06-08 13:21
动手学深度学习
(一)——线性回归(gluon)
文章作者:Tyan博客:noahsnail.com|CSDN|注:本文为李沐大神的《
动手学深度学习
》的课程笔记!
SnailTyan
·
2021-06-05 11:03
李沐 《
动手学深度学习
》学习笔记(2)windows10下的环境配置
第一步安装python网上有很多教程,随便一个都能用第二步安装anaconda下载anaconda的安装包,直接安装即可第三步conda下的环境配置打开AnacondaPowershellPrompt创建一个新的环境ML并激活condacreate-nMLpython=3.8-ycondaactivateML安装mxnetpipinstallmxnet==1.7.0.post1这里遇到了安装num
有请唐老爷~
·
2021-06-04 14:25
人工智能
深度学习
线性回归模型学习笔记
线性回归模型学习线性回归优化算法——梯度下降实现代码社团有一个博客的任务,正好在学沐神的
动手学深度学习
记一下就当学习笔记吧!
ys L
·
2021-05-17 15:35
笔记
pytorch
机器学习
《
动手学深度学习
》(Pytorch版) 学习笔记—— 3.3 线性回归的简洁实现
文章目录前言1生成数据集2读取数据3定义模型4初始化模型参数5定义损失函数6定义优化算法7训练模型8小结前言Python初学者一枚,文章仅为个人学习记录,便于以后查看使用。使用PyTorch更方便地实现线性回归的训练。1生成数据集生成与上一节中相同的数据集。其中features是训练数据特征,labels是标签。importtorchimportnumpyasnpnum_inputs=2num_e
書辭
·
2021-05-17 11:58
Python学习笔记
深度学习
python
神经网络
深度学习
《
动手学深度学习
》(Pytorch版) 学习笔记—— 3.2 线性回归的从零开始实现
文章目录前言1生成数据集2读取数据3初始化模型4定义模型5定义损失函数6定义优化算法7训练模型8小结前言Python初学者一枚,文章仅为个人学习记录,便于以后查看使用。本节介绍如何只利用Tensor和autograd来实现一个线性回归的训练。首先,导入本节中实验所需的包或模块,其中的matplotlib包可用于作图,且设置成嵌入显示。%matplotlibinlineimporttorchfrom
書辭
·
2021-05-17 10:48
Python学习笔记
深度学习
python
深度学习
动手学深度学习
(三)——丢弃法(gluon)
文章作者:Tyan博客:noahsnail.com|CSDN|注:本文为李沐大神的《
动手学深度学习
》的课程笔记!
SnailTyan
·
2021-05-15 03:59
《
动手学深度学习
》(Pytorch版) 学习笔记—— 2.3 自动求梯度
文章目录前言1概念2Tensor3梯度3.1一些实际例子3.1.13.1.2中断梯度追踪的例子3.1.3前言Python初学者一枚,文章仅为个人学习记录,便于以后查看使用。深度学习中,我们经常需要对函数求梯度(gradient)。PyTorch提供的autograd包能够根据输入和前向传播过程自动构建计算图,并执行反向传播。1概念Tensor是这个包的核心类。如果将其属性.requires_gra
書辭
·
2021-05-11 11:37
深度学习
Python学习笔记
python
深度学习
pytorch
上一页
29
30
31
32
33
34
35
36
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他