��ʮ������е£�0703-���ӻ�����tensorboard��visdom _ ��IIS7վ��֮�ҡ�

��ǰλ�� ������ҳ > ��ʮ������е£�0703-���ӻ�����tensorboard��visdom

    ��ʮ������е£�0703-���ӻ�����tensorboard��visdom

    ���ߣ���ʮ������е� ʱ�䣺2021-04-29 18:18

    0703-���ӻ�����tensorboard��visdom

    Ŀ¼
    • һ�����ӻ����߸���
    • ����TensorBoard
    • ����Visdom
      • 3.1 visdom ����
      • 3.2 visdom �ij��ò���
      • 3.3 visdom.line ���ӻ��� update ����
      • 3.4 visdom.image(images) ���ӻ�
      • 3.5 visdom.text ���ӻ�

    pytorch�����̳�Ŀ¼��https://www.cnblogs.com/nickchen121/p/14662511.html

    һ�����ӻ����߸���

    ������ѵ���������ʱ�����ǿ���ϣ������ֱ�۵��˽�ѵ�������������ʧ���ߡ�����ͼƬ�����ͼƬ�������˵IJ����ֲ�����Ϣ����Щ��Ϣ�ܰ����Ǹ��õؼල�����ѵ�����̣������ܹ�Ϊ�����Ż��ṩ��������ݡ�

    �������Ƕ���ͨ�� print ��ӡ���������ֻ�ܴ�ӡ��Ϣ�����Һܶ����ݲ���ֱ�ۡ��������ǽ������������ѧϰ�г��õĿ��ӻ����ߡ���TensorBoard �� visdom�������ܸ�ֱ�۵����ֺܶ���Ϣ��

    ����TensorBoard

    TensorBoard ����� ��Ϊ TensorFlow �Ŀ��ӻ�����Ѹ�����п��ģ���Ϊ�� tf ��ȼ��ɵĹ��ߣ�tensorboard �ܹ�չ�� tf ���������ͼ������ͼ�����ɶ���ָ��ͼ���������ݣ���������ͼ��ʾ��

    ��Ȼ TensorBoard �� tf ��ȼ��ɣ����� TensorBoard ��һ����Զ����Ĺ��ߣ�ֻҪ�û������������ѭ��Ӧ�ĸ�ʽ��tensorboard ���ܶ�ȡ��Щ���ݲ����п��ӻ���

    ������������������ torch ��ʹ�� tensorboard_logger ����ѵ����ʧ�Ŀ��ӻ���

    tensorboard_logger �� TeamHG-Memex ������һ�����������ߣ����� TensorBoard �Ĺ��ܳ�ȡ�������÷� TensorBoard �û�Ҳ��ʹ�������п��ӻ�������֧�ֵĹ������ޡ�

    tensorboard_logger �İ�װ��Ҫ��Ϊ����������

    1. ��װ TensorFlow�����鰲װ tf �� cpu-only �汾�����尲װ�̳̲ο� TensorFlow �ٷ��ĵ� - pip ��װ
    2. ��װ tensorboard_logger������ͨ�� pip install tensorboard_logger ����ֱ�Ӱ�װ

    tensorboard_logger ��װ�����󣬿���ͨ����������ֱ������ TensorBoard��tensorboard --logdir <your/running/dir> --port <your_bind_port>������ <your/running/dir> �ǵ�ǰ�����ļ��������ļ��С�

    ���������˵�� tensorboard_logger ��ʹ�á�

    from tensorboard_logger import Logger
    
    # ���� logger ����logdir ����ָ�� log �ļ��ı���·��
    # flush_secs ����ָ��ˢ��ͬ�����
    logger = Logger(logdir='experimient_cnn', flush_secs=2)
    for ii in range(100):
        logger.log_value('loss', 10 - ii * 0.5, step=ii)
        logger.log_value('accuracy', ii**0.5 / 10)
    

    ����������� http://localhost:6006������ 6006 ��Ĭ�ϵ� <your_bind_port>���������Կ�����ͼ��ʾ�Ľ����

    ��ͼ���� Horizontal Axis ������������ѡ�

    • Step�����ݲ�������¼��log_value ��ָ����в������������Ϊ x ��������㻮��
    • Relative����ǰ�����˳����㻮�ߣ�������Ϊ logger �Լ�ά����һ�� step ���ԣ�ÿ����һ�� log_value ���Զ��� 1
    • Wall����ʱ��������㻮��

    ���� Smoothing �����������϶�����������ƽ���ķ��ȡ���ΪĬ���� 30s �Զ�ˢ�����ݣ���˿��Ե���ҳ�����Ͻǵ�ˢ�°�ť����ˢ�½����

    ��Ȼ tensorboard_logger ��ʹ��ʮ�ּ򵥣�����ֻ��ͳ�Ƽ򵥵���ֵ��Ϣ���ݲ�֧���������ܡ�

    ���� tensorboard_logger������ר����� torch ������ TensorBoardX������װ�˸���� tensorboard �ӿڣ�֧�ּ�¼������ͼƬ��ֱ��ͼ���������ı�������ͼ�� embedding ����Ϣ������������ tf �� TensorBoard ��ȫһ���Ĺ��ܣ�����ʹ�ýӿڸ��Ӽ򵥣�����Ȥ��ͬѧ��������ѧϰ��

    ����Visdom

    3.1 visdom ����

    visdom �� Facebook ר��Ϊ torch ������һ����ӻ����ߣ����dz�������������ȴ֧�ַdz��ḻ�Ĺ��ܣ���ʤ�δ�����Ŀ�ѧ������ӻ��������Ŀ��ӻ���������ͼ��ʾ��

    visdom ���Դ��졢��֯�͹����������ݵĿ��ӻ���������ֵ��ͼ���ı�����������Ƶ��֧�� PyTorch��Torch �� Numpy��

    �û�����ͨ�������֯���ӻ��ռ��ͨ���û��ӿ�Ϊ���ݴ����DZ��壬���ʵ�����͵��Դ��롣

    visdom ��������������Ҫ���

    1. env����������ͬ�����Ŀ��ӻ�����໥���룬����Ӱ�죬ʹ�õ�ʱ�������ָ�� env��Ĭ��ʹ�� main����ͬ�û�����ͬ�ij���һ��ʹ�ò�ͬ�� env��
    2. pane�����񡣴���������ڿ��ӻ�ͼ����ֵ���ӡ�ı��ȣ��������϶������š�����͹رա�һ���������ʹ��ͬһ�� env �еIJ�ͬ pane��ÿ�� pane ���ӻ����¼ijһ��Ϣ��

    ����ͼ��ʾ����ǰ env �������� pane��һ�����ڴ�ӡ log������һ�����ڼ�¼��ʧ�����ı仯������ ��clear�� ��ť������յ�ǰ env ������ pane������ ��save�� ��ť���԰ѵ�ǰ env ����� json �ļ�������·��λ�� ~/.visdom/ Ŀ¼�¡��޸� env �����ֺ󵥻� fork�����Խ���ǰ env ����Ϊ���ļ���

    ͨ������ pip install visdom �Ϳ������ visdom �İ�װ����װ��ɺ���Ҫͨ�� python -m visdom.server �������� visdom ���񣬻�ͨ�� nohup python -m visdom.server & ����ѷ���ŵ���̨���С�visdom ������һ�� Web Server ����Ĭ�ϰ� 8097 �˿ڣ��ͻ��˺ͷ�������ͨ�� tornado ���зǶ���������

    �����ʹ�� visdom ʱ��������Ҫע��ĵط���

    1. ��Ҫ�ֶ�ָ������ env�������� Web ���浥�� ��save�� ��ť���ڳ����е��� save ���������� visdom ����������env ����Ϣ�ᶪʧ
    2. �ͻ��˺ͷ�����֮��Ľ������� tornado �첽��ܣ����ӻ��������������ǰ���������쳣Ҳ���ᵼ�³����˳�

    3.2 visdom �ij���

    visdom �� Plotly Ϊ������֧�ַḻ�Ŀ��ӻ��������������˵��һЩ��õIJ�����

    # ����visdom ������
    # nohup python -m visdom.server &
    
    import visdom
    import torch as t
    
    # �½�һ�����ӿͻ���
    # ָ�� env=u'test1'��Ĭ�϶˿�Ϊ 8097��host �� 'localhost'
    vis = visdom.Visdom(env=u'test1')
    
    x = t.arange(1, 30, 0.01)
    y = t.sin(x)
    
    vis.line(X=x, Y=y, win='sinx', opts={'title': 'y=sin(x)'})
    
    Setting up a new session...
    
    
    
    
    
    'sinx'
    

    ����������һ�����������룺

    • vis = visdom.Visdom(env=t'test1')�����ڹ���һ���ͻ��ˣ��ͻ��˳���ָ�� env �⣬������ָ�� host��port �Ȳ�����
    • vis ��Ϊһ���ͻ��˶��󣬿���ʹ�����³����Ļ�ͼ������
      • line������ MATLAB �е� plot ���������ڼ�¼ijЩ�����ı仯��������ʧ��׼ȷ�ʵ�
      • image�����ӻ�ͼƬ�������������ͼƬ��Ҳ������ GAN ���ɵ�ͼƬ���������Ǿ����˵���Ϣ
      • text�����ڼ�¼��־��������Ϣ��֧�� HTML ��ʽ
      • histgram�����ӻ��ֲ�����Ҫ�Dz鿴���ݡ������ķֲ�
      • scatter������ɢ��ͼ
      • bar��������״ͼ
      • pie�����Ʊ�״ͼ
      • �����������Բο� visdom �� GitHub ��ҳ

    ������Ҫ�������ѧϰ�г����� line��immage �� text �IJ�����

    ע��visdom ͬʱ֧�� torch �� tensor �� numpy �� ndarray �������ݽṹ������֧�� python �� int �� float ���������ͣ����ÿ�δ���ʱ����Ҫ�Ȱ�����ת�� ndarray �� tensor��

    ���������IJ���һ�㲻ͬ��������������ʱ��������������߱��ģ�

    • win������ָ�� pane �����֣������ָ����visdom ���Զ�����һ���µ� pane��������β���ָ���� pane ������һ��������߻Ḳ��ǰ�ߣ���˽���ÿ�β�����ָ�� win
    • opts���������ӻ����ã�����һ���ֵ䣬������ option ���� title��xlabel��ylabel��width �ȣ���Ҫ�������� pane ����ʾ��ʽ

    3.3 visdom.line ���ӻ��� update ����

    ֮ǰ˵����ÿ�β������Ḳ��֮ǰ����ֵ����������ѵ��������������Ҫ���ϸ�����ֵ������ʧֵ�ȣ����ʱ�����Ҫָ������ update='append' �����⸲��֮ǰ����ֵ��

    # append ׷������
    for ii in range(0, 10):
        # y = x
        x = t.Tensor([ii])
        y = x
        vis.line(X=x, Y=y, win='polynomial', update='append' if ii > 0 else None)
    
    # updateTrace ����һ���ߣ�����ʹ����update='append'�����Ḳ��ԭ��������
    x = t.arange(0, 9, 0.1)
    y = (x**2) / 9
    vis.line(X=x,
             Y=y,
             win='polynomial',
             name='this is a new Trace',
             update='append')
    
    'polynomial'
    

    3.4 visdom.image(images) ���ӻ�

    images �Ļ�ͼ���ܿɷ�Ϊ�������ࣺ

    • image ����һ����ά����ά������H��W �� 3��H��W��ǰ���Ǻڰ�ͼ�񣬺����Dz�ɫͼ��
    • images ����һ����ά���� N��C��H��W��C ������ 1 �� 3���ֱ�����ڰ׺Ͳ�ɫͼ�񡣿�ʵ������ torchvision �� make_grid �Ĺ��ܣ������ö���ͼƬƴ����һ��images Ҳ���Խ���һ����ά����ά����������ʱ����ʵ�ֵĹ��ܺ� image һ��
    # ���ӻ�һ������ĺڰ�ͼƬ
    vis.image(t.randn(64, 64).numpy())
    
    # ���ӻ�һ������IJ�ɫͼƬ
    vis.image(t.randn(3, 64, 64).numpy(), win='random2')
    
    # ���ӻ� 36 ������IJ�ɫͼƬ��ÿһ�� 6 ��
    vis.images(t.randn(36, 3, 64, 64).numpy(),
               nrow=6,
               win='random3',
               opts={'title': 'random_imgs'})
    
    'random3'
    

    3.5 visdom.text ���ӻ�

    vis.text ���ڿ��ӻ��ı�����֧�����е� html ��ǩ��ͬʱҲ��ѭ�� html ���﷨��׼���������˵����

    text = u'''
    <h1>Hello visdom</h1><br>
    Nick �Dz���<b>��˧��</b><br>
    �����ǵ�'''
    vis.text(text=text, win='visdom', opts={'title': u'visdom �� nick'})
    
    'visdom'
    

    bk