d2l的一些库解析,用到什么补充什么【深度学习+d2l+torch】 |
您所在的位置:网站首页 › python中的torch的作用 › d2l的一些库解析,用到什么补充什么【深度学习+d2l+torch】 |
d2l的一些图像调用
图像查看与显示%matplotlibset_figsize()d2l.Image.open()show_images()
图像查看与显示
因为全文都是使用jupyter打开的,所以会使用一下%matplotlib inline 所以先简单解释一下%matplotlib inline %matplotlib使用%matplotlib命令可以将matplotlib的图表直接嵌入到Notebook之中,或者使用指定的界面库显示图表,它有一个参数指定matplotlib图表的显示方式。inline表示将图表嵌入到Notebook中。 python提供了很多%magic行命令,可以用%magic查看都有哪些命令,在命令后添加?可以查看命令具体作用 这个说完了,接下来进入正题 set_figsize()首先我们来看李沐老师的d2l包 def set_figsize(figsize=(3.5, 2.5)): """Set the figure size for matplotlib. Defined in :numref:`sec_calculus`""" use_svg_display() d2l.plt.rcParams['figure.figsize'] = figsize这里调用了一个方法,分别是use_svg_display(),对一个字典进行了赋值 d2l的定义如下: import sys d2l = sys.modules[__name__]其实就是一个参数存储与传递的作用 然后use_svg_display()就在这个函数上当,简单来说就是进行一下设置, from matplotlib_inline import backend_inline def use_svg_display(): """Use the svg format to display a plot in Jupyter. Defined in :numref:`sec_calculus`""" backend_inline.set_matplotlib_formats('svg')全部的作用也就是设置成矢量图罢了 就是设置matplotlib的formats d2l.Image.open()Image.open()大家用的比较多的是PIL的Image.open,实际上也是一个意思,他只是吧Image导入进来了,也就是说其实去掉d2l也能正常运行,只是要import一下PIL包而已,同样的是plt.show(),李沐老师所作的只是帮我们进行了一下import。 之后我们解析一下show_images()方法: show_images()批量显示图片是plt一个比较常用的功能了,掌握一下也是挺好的,这种偏向于功能和基础向的东西李沐老师一般是不喜欢说的 def show_images(imgs, num_rows, num_cols, titles=None, scale=1.5): """Plot a list of images. Defined in :numref:`sec_utils`""" figsize = (num_cols * scale, num_rows * scale) _, axes = d2l.plt.subplots(num_rows, num_cols, figsize=figsize) axes = axes.flatten() for i, (ax, img) in enumerate(zip(axes, imgs)): try: img = d2l.numpy(img) except: pass ax.imshow(img) ax.axes.get_xaxis().set_visible(False) ax.axes.get_yaxis().set_visible(False) if titles: ax.set_title(titles[i]) return axes参数需要五个,两个含有默认值 imgs是图片的输入list,然后就是高宽个数 然后解释一下plt.subplot的作用以及用法 简单来说,这个函数就是把figure分为row*cols个子图,写法也比较多样。 比如 plt.subplot(232) plt.subplot(2,3,2) #这两者作用是相同的,简单来说就是把figure分为2*3,同时选择展平之后的第2个位置 matpltlib.pyplot.figure( num = None, # 设定figure名称。系统默认按数字升序命名的figure_num(透视表输出窗口)e.g. “figure1”。可自行设定figure名称,名称或是INT,或是str类型; figsize=None, # 设定figure尺寸。系统默认命令是rcParams["figure.fig.size"] = [6.4, 4.8],即figure长宽为6.4 * 4.8; dpi=None, # 设定figure像素密度。系统默命令是rcParams["sigure.dpi"] = 100; facecolor=None, # 设定figure背景色。系统默认命令是rcParams["figure.facecolor"] = 'w',即白色white; edgecolor=None, frameon=True, # 设定要不要绘制轮廓&轮廓颜色。系统默认绘制轮廓,轮廓染色rcParams["figure.edgecolor"]='w',即白色white; FigureClass=, # 设定使不使用一个figure模板。系统默认不使用; clear=False, # 设定当同名figure存在时,是否替换它。系统默认False,即不替换。 **kwargs)那么plt.subplots呢? 很简单,就是一次性得到所有层和画布 有两个返回值,一个是就是画布fig,第二个就是ax,也就是块 所以就很容易理解了,李沐老师通过一个循环进行了每个块的赋值,zip合并,然后增加个enumerate只是为了多产生一个i进行计数。 这部分的笔记我是结合数据增广那一章来的,所以就是简单进行一些转换吧。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |