민서네집

[Docker for Windows] jupyter notebook - Graph Image Save 안되는 문제 해결 본문

머신러닝

[Docker for Windows] jupyter notebook - Graph Image Save 안되는 문제 해결

브라이언7 2016. 7. 23. 07:29

Windows 10, Docker for Windows 환경에서는 matplotlib Graph Image 가 Jupyter notebook을 Save 할 때 에러남. (python 2 환경


jupyter notebook 에서 Cell 메뉴에서 Current Outputs에서 Graph Image만 Clear 하고 저장하면 문제 없음.


Docker 안 쓰는 Mac에서 테스트 해 보았음.

=> python 2.7.11 환경의 Mac에서는 에러 안나고 Save 잘 됨. (2016. 7. 23)


Save_error.ipynb


텍스트인 한글은 잘 저장되는 것으로 보아, Encoding 에는 별 문제 없는것 같은데,


Graph Image 에서 왜 에러가 날까?


[E 16:49:31.706 NotebookApp] Couldn't parse JSON

    Traceback (most recent call last):

      File "/usr/local/lib/python2.7/dist-packages/notebook/base/handlers.py", line 328, in get_json_body

        model = json.loads(body)

      File "/usr/lib/python2.7/json/__init__.py", line 338, in loads

        return _default_decoder.decode(s)

      File "/usr/lib/python2.7/json/decoder.py", line 366, in decode

        obj, end = self.raw_decode(s, idx=_w(s, 0).end())

      File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode

        obj, end = self.scan_once(s, idx)

    ValueError: Invalid control character at: line 1 column 16375 (char 16374)

[W 16:49:31.707 NotebookApp] Invalid JSON in body of request

[W 16:49:31.707 NotebookApp] 400 PUT /api/contents/Untitled.ipynb (172.17.0.1) 4.17ms referer=http://localhost:8888/note

books/Untitled.ipynb

[I 16:49:31.726 NotebookApp] Unsatisfiable read, closing connection: delimiter <_sre.SRE_Pattern object at 0x7f9257a04f4

8> not found within 65536 bytes


[샘플 소스]


import numpy as np


num_points = 1000

vectors_set = []

for i in range(num_points):

    x1= np.random.normal(0.0, 0.55)

    y1= x1 * 0.1 + 0.3 + np.random.normal(0.0, 0.03)

    vectors_set.append([x1, y1])


x_data = [v[0] for v in vectors_set]

y_data = [v[1] for v in vectors_set]


import matplotlib.pyplot as plt

%matplotlib inline


plt.plot(x_data, y_data, 'ro', label='Original data')

plt.legend()

plt.show()



Hyper-V 관리자 창에서 보이는 네트워크 주소로 웹브라우저로 접속하면 jupyter notebook을 save 할 때 에러 안남. (Graph Image가 있어도)


아래 그림에서 보듯이 http://10.0.75.2 로 접속하면 됨.




Docker Toolbox 에서는 jupyter notebook 이 save 안되는 문제가 없었음.

( Graph Image 가 있어도 에러 안나고 잘 save 됨 )



Docker for Windows 에서만 발생하는 문제인데, Host PC의 웹브라우저에서

http://10.0.75.2 로 접속하면 save 시 에러가 안남.




아래 4개 URL로 들어가도 똑같이 접속되는데, 왜 http://10.0.75.2 로 접속해야지만 Graph Image가 Save가 되는지 아직도 모르겠음. http://127.0.0.1:8888/notebooks/Save_error.ipynb http://localhost:8888/notebooks/Save_error.ipynb http://10.0.75.1:8888/notebooks/Save_error.ipynb http://10.0.75.2:8888/notebooks/Save_error.ipynb

'머신러닝' 카테고리의 다른 글

TensorFlow on a GTX 1080  (0) 2016.08.07
Docker 띄우는 명령어  (0) 2016.08.06
TensorFlow 예제  (0) 2016.07.19
CNN (Convolution Neural Networks)  (0) 2016.07.15
Windows 10에서 Docker for Windows 설치  (0) 2016.07.15
Comments