草庐IT

动手学深度学习-第2章预备知识

 数据操作 张量(Numpy-ndarray,Pytorch,TensorFlow-Tensor)torch.arange()torch.shapetorch.numel()张量中元素数量torch.reshape()改变张量的形状而不改变元素数量和元素值torch.randon()默认从均值为0 标准差为1 的标准高斯分布(正态分布)+,-,*,/,**torch.cat()连接 求和torch.sum() 广播机制索引切片内存分配对象转换数据预处理读取数据集importosos.makedirs(os.path.join('..','data'),exist_ok=True)data_fi

动手学深度学习-第2章预备知识

 数据操作 张量(Numpy-ndarray,Pytorch,TensorFlow-Tensor)torch.arange()torch.shapetorch.numel()张量中元素数量torch.reshape()改变张量的形状而不改变元素数量和元素值torch.randon()默认从均值为0 标准差为1 的标准高斯分布(正态分布)+,-,*,/,**torch.cat()连接 求和torch.sum() 广播机制索引切片内存分配对象转换数据预处理读取数据集importosos.makedirs(os.path.join('..','data'),exist_ok=True)data_fi

动手学深度学习第二章 2.1~2.3 节学习

希望您们先看过书,再来看本blog,否则可能会看不懂,原因是我只写书上没写或者很新奇的东西。先引个torch包importtorch2.1数据操作2.1.1入门x.numel()会返回张量中元素的总数。torch.tensor()与torch.Tensor()的区别torch.tensor()是(当你未指定dtype的类型时)将data转化为torch.FloatTensor、torch.LongTensor、torch.DoubleTensor等类型,转化类型依据于data的类型或者dtype的值直接使用vec=torch.tensor()会报错,可以考虑如下方案修改:vec=torch.T

动手学深度学习第二章 2.1~2.3 节学习

希望您们先看过书,再来看本blog,否则可能会看不懂,原因是我只写书上没写或者很新奇的东西。先引个torch包importtorch2.1数据操作2.1.1入门x.numel()会返回张量中元素的总数。torch.tensor()与torch.Tensor()的区别torch.tensor()是(当你未指定dtype的类型时)将data转化为torch.FloatTensor、torch.LongTensor、torch.DoubleTensor等类型,转化类型依据于data的类型或者dtype的值直接使用vec=torch.tensor()会报错,可以考虑如下方案修改:vec=torch.T

《动手学深度学习》安装mxnet出现问题

在看《动手学深度学习》时,安装mxnet(CPU)版时安装失败。首先是下载时使用国内镜像,可参考Python安装库太慢?配置好这个速度飞起-知乎(zhihu.com)下载时出现的问题:Buildingwheelfornumpy(setup.py)...error      error:subprocess-exited-with-error      pythonsetup.pybdist_wheeldidnotrunsuccessfully.    error:MicrosoftVisualC++14.0orgreaterisrequired.Getitwith"MicrosoftC++Bu

《动手学深度学习》安装mxnet出现问题

在看《动手学深度学习》时,安装mxnet(CPU)版时安装失败。首先是下载时使用国内镜像,可参考Python安装库太慢?配置好这个速度飞起-知乎(zhihu.com)下载时出现的问题:Buildingwheelfornumpy(setup.py)...error      error:subprocess-exited-with-error      pythonsetup.pybdist_wheeldidnotrunsuccessfully.    error:MicrosoftVisualC++14.0orgreaterisrequired.Getitwith"MicrosoftC++Bu

自己动手从零写桌面操作系统GrapeOS系列教程——18.外设和IO

学习操作系统原理最好的方法是自己写一个简单的操作系统。一、外设和I/O接口前面我们介绍过冯·诺依曼结构包含5部分,其中输入设备和输出设备统称为外部设备,简称外设。常见的外设有鼠标、键盘、显示器、硬盘等。由于外设种类多、差异大、速度慢等原因,导致CPU无法直接与外设沟通。于是在CPU和外设之间产生了“中间人”,这个“中间人”就是I/O接口。如下图:CPU与外设的信息交流都是通过I/O接口来间接实现的。比如我们前面向屏幕输出字符,并不是CPU直接将数据传递给屏幕,而是先传递给显卡,显卡再去操控屏幕。显卡就是一种I/O接口。后面我们将要学习如何读写硬盘,同样CPU无法直接读写硬盘,而是通过“中间人”

自己动手从零写桌面操作系统GrapeOS系列教程——18.外设和IO

学习操作系统原理最好的方法是自己写一个简单的操作系统。一、外设和I/O接口前面我们介绍过冯·诺依曼结构包含5部分,其中输入设备和输出设备统称为外部设备,简称外设。常见的外设有鼠标、键盘、显示器、硬盘等。由于外设种类多、差异大、速度慢等原因,导致CPU无法直接与外设沟通。于是在CPU和外设之间产生了“中间人”,这个“中间人”就是I/O接口。如下图:CPU与外设的信息交流都是通过I/O接口来间接实现的。比如我们前面向屏幕输出字符,并不是CPU直接将数据传递给屏幕,而是先传递给显卡,显卡再去操控屏幕。显卡就是一种I/O接口。后面我们将要学习如何读写硬盘,同样CPU无法直接读写硬盘,而是通过“中间人”

自己动手从零写桌面操作系统GrapeOS系列教程——16.封装打印字符串函数

学习操作系统原理最好的方法是自己写一个简单的操作系统。在上一讲中我们向屏幕打印字符串“GrapeOS”用了十几行汇编代码,如果要输出的字符比较多,这种方法太繁琐了。本讲我们将打印字符串封装成一个函数,使用时就方便多了。一、mbr7.asmmbr7.asm代码如下:org0x7c00;如果没有该行将无法正确打印要显示的字符串。;初始化段寄存器。movax,csmovds,ax;ds指向与cs相同的段。movax,0xb800moves,ax;本程序中es专用于指向显存段。;打印字符串:"GrapeOSbootstart."。movsi,boot_start_stringmovdi,80;在屏幕第

自己动手从零写桌面操作系统GrapeOS系列教程——16.封装打印字符串函数

学习操作系统原理最好的方法是自己写一个简单的操作系统。在上一讲中我们向屏幕打印字符串“GrapeOS”用了十几行汇编代码,如果要输出的字符比较多,这种方法太繁琐了。本讲我们将打印字符串封装成一个函数,使用时就方便多了。一、mbr7.asmmbr7.asm代码如下:org0x7c00;如果没有该行将无法正确打印要显示的字符串。;初始化段寄存器。movax,csmovds,ax;ds指向与cs相同的段。movax,0xb800moves,ax;本程序中es专用于指向显存段。;打印字符串:"GrapeOSbootstart."。movsi,boot_start_stringmovdi,80;在屏幕第