前言
在使用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中训练过程可视化,可以使用TensorBoard,下面是打开TensorBoard:
%load_ext tensorboard
%tensorboard --logdir runs/train
其中 runs/train 是打开所在的目录,通常是存放训练日志的目录,比如YOLOv5是把训练日志放在runs/train的。
效果如下
然后进行训练,点击更新,能看到训练的数据了。
参考
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')
"""
本文只供大家参考与学习,谢谢。