TensorFlowを使って算数②

be-07.hatenablog.com

上記の続き。次はTensorBoardを使ってグラフの可視化も行います。

実行環境は同じPython3です。

途中までしか書いていません。修正します。

コード

import tensorflow as tf


def x2_plus_b(x, b):
    # 関数の第一引数 x を出力する _x という名前の定数型のopを定義
    _x = tf.constant(x)
    # 関数の第二引数 b を出力する _b という名前の定数型のopを定義
    _b = tf.constant(b)
    # resultに_xの2乗を代入
    result = tf.square(_x)
    # resultに_bを加算
    result = tf.add(result, _b)
    # resultを返す
    return result


def monitor_calculation(x, b):
    # Graph のタイトルを付ける。
    title = "b = {0}".format(b)
    # c = x^2 + b
    c = x2_plus_b(float(x), float(b))
    # TensorBoardで表示する。第一引数でtag付け。第二引数は値
    s = tf.scalar_summary(title, c)
    m = tf.merge_summary([s])  # if you are using some summaries, merge them
    return m


if __name__ == '__main__':
    # Session オブジェクトを作成し、sessという別名をつける
    with tf.Session() as sess:
        # 計算したsummaryを、tf.train.SummaryWriterで書き出す writer に代入
        # その際に、フォルダの直下に "log" ファイルが作成され、出力される。
        writer = tf.train.SummaryWriter("log", graph_def=sess.graph)
        # -10 から 11までの数字
        xaxis = range(-10, 12)

    # 三回ループする
    for b in range(3):
        for x in xaxis:
            # monitor_calculation を実行し、summary_str に代入
            summary_str = sess.run(monitor_calculation(x, b))
            writer.add_summary(summary_str, x)

実行結果

WARNING:tensorflow:When passing a `Graph` object, please use the `graph` named argument instead of `graph_def`.

???

どうやらgraph_defというのは非推奨らしい。 直します。

writer = tf.train.SummaryWriter("log", graph=sess.graph)

TensorBoardを実行

tensorboard --logdir=/path/to/log-directory

f:id:be_07:20160609104930p:plain

グラフができました。

qiitaの記事だとGRAPHを押すと、データフローが可視化されるはずですがエラーが。なぜ

TensorFlowを使って算数①

qiita.com

前々から機械学習に興味があったけど、良く分からないままサンプルを実行して満足していました。 しかし、それではいかんと考えて上記のqiitaの記事にあった算数を実行して、コメントで処理の流れを説明しました。記事の方がしっかり記述されているので意味がない

メモ代わりみたいなもんです。

実行環境はPython3です。

import tensorflow as tf


def x2_plus_b(x, b):
    # 関数の第一引数 x を出力する _x という名前の定数型のopを定義
    _x = tf.constant(x)
    # 関数の第二引数 b を出力する _b という名前の定数型のopを定義
    _b = tf.constant(b)
    # resultに_xの2乗を代入
    result = tf.square(_x)
    # resultに_bを加算
    result = tf.add(result, _b)
    # resultを返す
    return result


if __name__ == '__main__':
    # 実行
    # Session オブジェクトを作成し、sessという別名をつける
    with tf.Session() as sess:
        # resultにsess.runで x2_plus_b を実行し、結果を result に代入する。角括弧をつけて行列とする?
        result = sess.run([x2_plus_b(2., 3.)])
        # print 関数で出力
        print(result)

実行結果

[7.0]

角括弧のところ調べたけど、会っているのか自信がないです。説明プリーズ。

女子力とは

何か書けとのお言葉をいただいたので、このテーマに沿って女子力とは何ぞやということについて書いていきたいと思います。

女子力 - Wikipedia

女子力(じょしりょく 英語: women's power[1])は、輝いた生き方をしている女子が持つ力であり、自らの生き方や自らの綺麗さやセンスの良さを目立たせて自身の存在を示す力[2]、男性からチヤホヤされる力

 終わりです