のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

visdom

        if self.display_id > 0:  # connect to a visdom server given <display_port> and <display_server>
            import visdom
            self.ncols = opt.display_ncols
            self.vis = visdom.Visdom(server=opt.display_server, port=opt.display_port, env=opt.display_env)
            if not self.vis.check_connection():
                self.create_visdom_connections()
             display_env: main                          
             display_freq: 400                           
             display_id: 1                             
            display_ncols: 4                             
             display_port: 8097                          
           display_server: http://localhost              
          display_winsize: 256                     

github.com

visdomを、Google colabで動かす方法

これで、動いてるのかな?

! npm install -g localtunnel
!python3 -m pip install visdom
!python3 -m visdom.server -port 6006 >> visdomlog.txt 2>&1 &
!lt --port 6006 >> url.txt 2>&1 &

#get_ipython().system_raw('/usr/local/bin/python3 -m pip install visdom')
#get_ipython().system_raw('/usr/local/bin/python3 -m visdom.server -port 6006 >> visdomlog.txt 2>&1 &')
#get_ipython().system_raw('lt --port 6006 >> url.txt 2>&1 &')

import time
time.sleep(5)
! cat url.txt
import visdom
time.sleep(5)
vis = visdom.Visdom(port='6006')
print(vis)
time.sleep(3)
vis.text('testing')
! cat visdomlog.txt

How to run Visdom on colab? · Issue #419 · facebookresearch/visdom · GitHub

ログは、エラーが出てない。

/tools/node/bin/lt -> /tools/node/lib/node_modules/localtunnel/bin/client
+ localtunnel@1.9.1
updated 1 package in 0.832s
Requirement already satisfied: visdom in /usr/local/lib/python3.6/dist-packages (0.1.8.8)
Requirement already satisfied: tornado in /usr/local/lib/python3.6/dist-packages (from visdom) (4.5.3)
Requirement already satisfied: torchfile in /usr/local/lib/python3.6/dist-packages (from visdom) (0.1.0)
Requirement already satisfied: pyzmq in /usr/local/lib/python3.6/dist-packages (from visdom) (17.0.0)
Requirement already satisfied: scipy in /usr/local/lib/python3.6/dist-packages (from visdom) (1.1.0)
Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from visdom) (1.11.0)
Requirement already satisfied: pillow in /usr/local/lib/python3.6/dist-packages (from visdom) (4.0.0)
Requirement already satisfied: websocket-client in /usr/local/lib/python3.6/dist-packages (from visdom) (0.54.0)
Requirement already satisfied: numpy>=1.8 in /usr/local/lib/python3.6/dist-packages (from visdom) (1.14.6)
Requirement already satisfied: requests in /usr/local/lib/python3.6/dist-packages (from visdom) (2.18.4)
Requirement already satisfied: olefile in /usr/local/lib/python3.6/dist-packages (from pillow->visdom) (0.46)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests->visdom) (2018.11.29)
Requirement already satisfied: idna<2.7,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests->visdom) (2.6)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests->visdom) (3.0.4)
Requirement already satisfied: urllib3<1.23,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests->visdom) (1.22)
your url is: https://odd-panther-75.localtunnel.me
your url is: https://big-grasshopper-66.localtunnel.me
your url is: https://stupid-insect-7.localtunnel.me
WARNING:root:Setting up a new session...
<visdom.Visdom object at 0x7f70c54be240>
/usr/bin/python2: No module named visdom
/bin/bash: /usr/local/bin/python3: No such file or directory
INFO:root:Application Started
INFO:tornado.access:200 POST /env/main (::1) 1.27ms
INFO:tornado.access:101 GET /vis_socket (::1) 0.85ms
INFO:root:Opened visdom socket from ip: ::1
INFO:tornado.access:200 POST /events (::1) 0.89ms


ポートを8097に変えたところ、以下のエラーがでる。

ERROR:visdom:[Errno 111] Connection refused

最終的に、以下を実行したあと、train.pyを動かせばいいと思う。
サーバーは、バックグラウンドで動いているので
"ps -efl"で確認した。

! npm install -g localtunnel
!python3 -m pip install visdom

!python3 -m visdom.server -port 8076 >> visdomlog.txt 2>&1 & <==サーバーを動かす
!lt --port 8076 >> url.txt 2>&1 & <==ポートを中継する

import time
time.sleep(5)
! cat url.txt  <==開くべきURL

f:id:none53:20190128095927p:plain
visdomの例
GitHub - junyanz/pytorch-CycleGAN-and-pix2pix: Image-to-image translation in PyTorch (e.g., horse2zebra, edges2cats, and more)

TypeError: initial_value must be str or None, not bytes

Traceback (most recent call last):
  File "train.py", line 70, in <module>
    tf.app.run()
  File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/platform/app.py", line 125, in run
    _sys.exit(main(argv))
  File "train.py", line 66, in main
    flip_labels=args.flip_labels)
  File "/content/zi2zi/model/unet.py", line 539, in train
    for bid, batch in enumerate(train_batch_iter):
  File "/content/zi2zi/model/dataset.py", line 68, in batch_iter
    processed = [process(e[1]) for e in batch]
  File "/content/zi2zi/model/dataset.py", line 68, in <listcomp>
    processed = [process(e[1]) for e in batch]
  File "/content/zi2zi/model/dataset.py", line 40, in process
    img = bytes_to_file(img)
  File "/content/zi2zi/model/utils.py", line 27, in bytes_to_file
    return StringIO(bytes_img)
TypeError: initial_value must be str or None, not bytes

www.monotalk.xyz