<jupyter_start><jupyter_text>resultというディレクトリにtrain_mnist.pyの実行結果が出力されているとします。<jupyter_code>ls result<jupyter_output><empty_output><jupyter_text>cg.dotはDOT言語で記述されたネットワーク構造のファイル、logはJSONで記述された実行時間、エポック数、反復回数、精度などを記述したファイルになります。 cg.dotはdotコマンドによりpngなどの画像ファイルに変換することができます。<jupyter_code>%%bash
dot -Tpng result/cg.dot -o result/cg.png<jupyter_output><empty_output><jupyter_text>result/cg.pngを表示してみます。ここではPythonスクリプトを使用して表示してみます。(eogコマンド等を使っても大丈夫です。)<jupyter_code>from PIL import Image
from matplotlib import pylab as plt

%matplotlib inline
plt.figure(figsize=(8, 8), dpi=400)
plt.imshow(np.array(Image.open('result/cg.png')))<jupyter_output><empty_output><jupyter_text>result/logを表示してみます。Pythonスクリプトを使ってファイルを読み込んでみましょう。<jupyter_code>import json

with open('result/log', 'r') as f:
        data = json.load(f)
        print(data)<jupyter_output><empty_output><jupyter_text>epoch毎にelapsed_time, iteration, main/loss, main/accuracy, validation/main/loss, validation/main/accuracyが出力されているのがわかります。ここでは、epoch毎のvalidation/main/accuracyを表示してみましょう。<jupyter_code>x, y = [],[]
xlabel, ylabel = 'epoch', 'validation/main/accuracy'

for d in data:
    x.append(d[xlabel])
    y.append(d[ylabel])

%matplotlib inline
plt.xlabel(xlabel)
plt.ylabel(ylabel)
plt.plot(x,y)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1265625, 'fraction_numerical': 0.00390625, 'mean_word_length': 9.675, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '667215', 'license': 'MIT', 'n_tokens_mistral': 672, 'n_tokens_neox': 633, 'n_words': 53, 'path': '2/7_chainermn_result.ipynb', 'repo_name': 'rymzt/aaic_gathering', 'size': '1280'}