質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

3076閲覧

tf.InteractiveSessionがわかりません

退会済みユーザー

退会済みユーザー

総合スコア0

CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/09/30 04:30

題名の通りtf.InteractiveSessionがわかりません。
自分が調べたことはコメントの行で書いてるのですが、意味(使い方)が理解できません。
今、自分は既存のプログラムを使って勉強しているのですが、その中に出てきました。
下にあるのがそのプログラムの一部です。
第3回 TensorFlowの基本構成要素:「テンソル」と「セッション」を読んだのですが、わかりませんでした。
申し訳ないのですが、tf.InteractiveSessionとはなんですか?

python

1#推論を実行するためのTensorFlowセッション 2#tf.InteractiveSession: 対話モードなどで使う。インタラクティブに操作できるセッションで、データフローグラフ構築前にインスタンスを作成して、明示的にcloseする必要がある 3#データフローグラフについて https://atmarkit.itmedia.co.jp/ait/articles/1804/18/news142.html 4#TensorFlowはデータフローグラフを利用した数値計算ライブラリ 5"""「インタラクティブ」の解説 6 「対話」または「双方向」といった意味で、ユーザーがパソコンの画面を見ながら、対話をするような形式で操作する形態を指す。 7 具体的には、コンピューターからの画像や音声によるメッセージに対して、ユーザーがマウスやキーボードを入力して操作を進めていく。 8""" 9sess = tf.InteractiveSession() 10 11#トレーニング済みのCNNの重みをロードする 12print_("\n'%s'からトレーニングされたパラメータを読み込む..."%FLAGS.params) 13load_params = tl.files.load_npz(name=FLAGS.params) 14tl.files.assign_params(sess, load_params, net) 15print_("\t完了\n") 16 17if not os.path.exists(FLAGS.out_dir): 18 os.makedirs(FLAGS.out_dir) 19 20print_("\nStarting prediction...\n\n") 21k = 0 #元の値は0, 今は9 22for i in range(len(frames)): 23 print("Frame %d: '%s'"%(i,frames[i])) 24 25 try: 26 #フレームの読み込み 27 print_("\t読み込み...") 28 x_buffer = img_io.readLDR(frames[i], (sy,sx), True, FLAGS.scaling) 29 print_("\t完了") 30 #飽和(Saturation) 31 print_("\t(飽和: %0.2f%%)\n" % (100.0*(x_buffer>=1).sum()/x_buffer.size), 'm') 32 33 # 実行予測。 34 # ガンマ値は、再構成されたハイライトの強度を高める/減らすことを可能にするために使用されます。 35 # y = f(x)が再構成されたものであれば、ガンマ値 gは、y = f(x^(1/g))^gに従ってこれを変更します。 36 print_("\t推論...") 37 feed_dict = {x: np.power(np.maximum(x_buffer, 0.0), 1.0/FLAGS.gamma)} 38 y_predict = sess.run([y], feed_dict=feed_dict) 39 y_predict = np.power(np.maximum(y_predict, 0.0), FLAGS.gamma) 40 print_("\t完了\n") 41 42 # ガンマ補正出力 43 y_gamma = np.power(np.maximum(y_predict, 0.0), 0.5) 44 45 # ディスクへの書き込み 46 print_("\t書き込み...") 47 k += 1; 48 img_io.writeLDR(x_buffer, '%s/%06d_in.png' % (FLAGS.out_dir, k), -3) 49 img_io.writeLDR(y_gamma, '%s/%06d_out.png' % (FLAGS.out_dir, k), -3) 50 img_io.writeEXR(y_predict, '%s/%06d_out.exr' % (FLAGS.out_dir, k)) 51 print_("\t完了\n") 52 53 except img_io.IOException as e: 54 print_("\n\t\tWarning! ", 'w', True) 55 print_("%s\n"%e, 'w') 56 except Exception as e: 57 print_("\n\t\tError: ", 'e', True) 58 print_("%s\n"%e, 'e') 59 60print_("終了!\n") 61#closeメソッドを呼び出してリソースの解放 62sess.close()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/09/30 06:19

>もし、「Interactive」が付いてる場合限定の質問なら、的外れです 自分は「Interactive」がついてる場合とついてない場合がわからないのですけれども、何かかわるのでしょうか?
jbpb0

2021/09/30 06:26

それでしたら、そこにはあまりこだわらず、まずは私が上のコメントで紹介したのを見てください
退会済みユーザー

退会済みユーザー

2021/09/30 06:30

わかりました。 とりあえず教えていただいた2つのサイトを読んでみます。
退会済みユーザー

退会済みユーザー

2021/09/30 07:54

すみません。あまり理解できなかったのですが、 tf.Graph は、計算処理の内容を保持するものです。これ単体では計算処理を実行できません。 tf.Session が、計算処理の実行を司る機構です。 と2つ目にありました。 tf.Session の生成時には "graph" という引数で tf.Graph を指定します。 ですが、 sess = tf.InteractiveSession()のときどうなっていますか? sess = tf.InteractiveSession()をつかっているのは 推論(実行予想)のところの y_predict = sess.run([y], feed_dict=feed_dict) だと思うのですが、合っているとおもいますか? 今の私の認識はtfの計算をするために必要な宣言だと考えています。 これでは、まだ認識が甘いでしょうか?
guest

回答1

0

ベストアンサー

sessionはもともとは「席に着く(椅子に座る)」という意味です。
そこから転じて、「会議を始めてから終わるまで」という意味になりました。
sessionでは議題を決めて結論を出すのが普通ですね。
そして、多くの会議では会議を始めるときに議題は決っていて、椅子とか机の配置とか、投票箱とか議題は事前に準備しておくものです。

IT用語のsessionは、「何かをするための始めから終わりまで」という意味です。
ITのsessionを始めるときには、必要なデータとか参加者の資格確認とかは始める瞬間には決っているのが普通です。

tensorflow1系の「Interactive」でないsessionでは、普通のsessionと同じように使用するGraphなどは既に決っていなければ成りません。
それに対して、会議で言えば議題も決っていないし、椅子や机も置いていない状態から始めるのが、tensorflow1系の「Interactive」なsessionです。
場所を取っただけで、机や椅子の配置(Graph)はこれからやります、議題(目的)や参考資料(訓練用データ)もこれからやります、ということです。

これが、tensorflow1系の InteractiveSessionの意味です。

投稿2021/09/30 08:26

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/10/01 01:45 編集

tensorflow1系のtfを使用して計算を行うときに、sessionを使用する。 Graphの値が決まっていればsesionでいい。 しかし、決まっていない場合Interactiveがつく という認識でいいですか
ppaul

2021/10/01 06:54

$ python mysource.py というようにファイルを指定して実行するときは、tf.Sessionを使いましょう。しかし $ python Python 3.9.4 Type "help", "copyright", "credits" or "license" for more information. >>> というようにpythonを起動して対話モード(Interactive Mode)で動かしているならtf.InteractiveSessionを使いましょうという意味です。 対話モードがわからないなら https://docs.python.org/ja/3/tutorial/interpreter.html#interactive-mode を読んでください。
退会済みユーザー

退会済みユーザー

2021/10/01 08:42

今回のプログラムの実行コードは、 python3 hdrcnn_predict.py --params hdrcnn_params.npz --im_dir data/img_001.png --width 1024 --height 768 なのですが、ファイルの指定とパラメータがある場合は ファイルの指定の他に入力があるため(入力があるということは対話モード?だから) tf.Sessionではなくtf.InteractiveSessionということですか?
ppaul

2021/10/01 10:56

batch的な実行ですから、tf.Sessionでも良いと思います。
退会済みユーザー

退会済みユーザー

2021/10/01 11:50

このプログラムの制作者はtf.InteractiveSessionを選んだんですが、tf.Sessionでのいいのですね。 これは、今ので疑問に思ったのですが、tf.InteractiveSessionはtf.Sessionの上位互換なのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問