notebook 显示图片、训练过程可视化

前言

在使用notebook训练模型,可以使用 tensorboard 来可视化训练过程的指标,比如精度、召回率、损失大小等等。生成的结果图片可以使用IPython来显示。

一、显示图片

使用 IPython 中的display,可以在notebook中显示Image、JSON、HTML、Javascript、IFrame、Markdown等等。其中显示图片使用display.Image( ) 函数,下面看一下display.Image( )完整的函数定义,

def __init__(data=None, url=None, filename=None, format=None, embed=None, width=None, height=None, retina=False, unconfined=False, metadata=None)

举个例子:

from IPython import display
display.Image(filename='name.jpg', width=640)

 filename 是图片路径+名称;width 是图片宽度。

notebook 显示图片、训练过程可视化

二、训练过程可视化

在notebook中训练过程可视化,可以使用TensorBoard,下面是打开TensorBoard:

%load_ext tensorboard
%tensorboard --logdir runs/train

其中 runs/train 是打开所在的目录,通常是存放训练日志的目录,比如YOLOv5是把训练日志放在runs/train的。

效果如下

notebook 显示图片、训练过程可视化

 然后进行训练,点击更新,能看到训练的数据了。

 notebook 显示图片、训练过程可视化

参考

IPython 中的display,display.Image( )部分源码:

​
class Image(DisplayObject):

    _read_flags = 'rb'
    _FMT_JPEG = u'jpeg'
    _FMT_PNG = u'png'
    _ACCEPTABLE_EMBEDDINGS = [_FMT_JPEG, _FMT_PNG]

    def __init__(self, data=None, url=None, filename=None, format=None,
                 embed=None, width=None, height=None, retina=False,
                 unconfined=False, metadata=None):
        """Create a PNG/JPEG image object given raw data.

        When this object is returned by an input cell or passed to the
        display function, it will result in the image being displayed
        in the frontend.

        Parameters
        ----------
        data : unicode, str or bytes
            The raw image data or a URL or filename to load the data from.
            This always results in embedded image data.
        url : unicode
            A URL to download the data from. If you specify `url=`,
            the image data will not be embedded unless you also specify `embed=True`.
        filename : unicode
            Path to a local file to load the data from.
            Images from a file are always embedded.
        format : unicode
            The format of the image data (png/jpeg/jpg). If a filename or URL is given
            for format will be inferred from the filename extension.
        embed : bool
            Should the image data be embedded using a data URI (True) or be
            loaded using an <img> tag. Set this to True if you want the image
            to be viewable later with no internet connection in the notebook.

            Default is `True`, unless the keyword argument `url` is set, then
            default value is `False`.

            Note that QtConsole is not able to display images if `embed` is set to `False`
        width : int
            Width in pixels to which to constrain the image in html
        height : int
            Height in pixels to which to constrain the image in html
        retina : bool
            Automatically set the width and height to half of the measured
            width and height.
            This only works for embedded images because it reads the width/height
            from image data.
            For non-embedded images, you can just set the desired display width
            and height directly.
        unconfined: bool
            Set unconfined=True to disable max-width confinement of the image.
        metadata: dict
            Specify extra metadata to attach to the image.

        Examples
        --------
        # embedded image data, works in qtconsole and notebook
        # when passed positionally, the first arg can be any of raw image data,
        # a URL, or a filename from which to load image data.
        # The result is always embedding image data for inline images.
        Image('http://www.google.fr/images/srpr/logo3w.png')
        Image('/path/to/image.jpg')
        Image(b'RAW_PNG_DATA...')

        # Specifying Image(url=...) does not embed the image data,
        # it only generates `<img>` tag with a link to the source.
        # This will not work in the qtconsole or offline.
        Image(url='http://www.google.fr/images/srpr/logo3w.png')

        """

​

本文只供大家参考与学习,谢谢。

上一篇:python二叉树,层序添加节点,层序遍历节点,二叉搜索树,前序遍历


下一篇:python判断变量是否为None