このページは Cloud Translation API によって翻訳されました。
Switch to English

tf.compat.v1.Session

GitHubの上のソースを表示

TensorFlow操作を実行するためのクラス。

ノートPCで使用されます

チュートリアルで使用されます

Session目的は、環境カプセル化するOperationオブジェクトが実行され、およびTensorオブジェクトが評価されます。例えば:

 tf.compat.v1.disable_eager_execution() # need to disable eager in TF2.x
# Build a graph.
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b

# Launch the graph in a session.
sess = tf.compat.v1.Session()

# Evaluate the tensor `c`.
print(sess.run(c)) # prints 30.0
 

セッションは、次のようなリソース、所有してtf.Variabletf.queue.QueueBase 、およびtf.compat.v1.ReaderBase 。彼らがもはや必要とされているときに、これらのリソースを解放しないことが重要です。これを行うには、呼び出しのいずれかtf.Session.closeセッションに対してメソッドを、またはコンテキストマネージャとしてのセッションを使用しています。次の2つの例は等価です。

 # Using the `close()` method.
sess = tf.compat.v1.Session()
sess.run(...)
sess.close()

# Using the context manager.
with tf.compat.v1.Session() as sess:
  sess.run(...)
 

ConfigProtoプロトコルバッファは、セッションのための様々な設定オプションを公開します。たとえば、次のようにセッションを作成し、デバイスの配置のためのソフトな制約を使用してセッションを作成し、そして得られた配置の決定をログに記録します:

 # Launch the graph in a session that allows soft device placement and
# logs the placement decisions.
sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(
    allow_soft_placement=True,
    log_device_placement=True))
 

target (オプション)に接続するための実行エンジン。インプロセスエンジンを使用して、デフォルト。参照してください分散TensorFlowの例については。
graph (オプション) Graph起動するには、(前述しました)。
config (オプション)A ConfigProtoセッションの設定オプションとプロトコルバッファ。

graph このセッションで開始されたグラフ。
graph_def 基本となるTensorFlowグラフのシリアライズ可能なバージョン。
sess_str このセッションが接続するTensorFlowプロセス。

メソッド

as_default

ソースを表示

このオブジェクトのデフォルトのセッションを行い、コンテキストマネージャを返します。

で使用withへの呼び出しことを指定するキーワードtf.Operation.runまたはtf.Tensor.evalこのセッションで実行されなければなりません。

 c = tf.constant(..)
sess = tf.compat.v1.Session()

with sess.as_default():
  assert tf.compat.v1.get_default_session() is sess
  print(c.eval())
 

現在のデフォルトのセッションを取得するには、使用tf.compat.v1.get_default_session

 c = tf.constant(...)
sess = tf.compat.v1.Session()
with sess.as_default():
  print(c.eval())
# ...
with sess.as_default():
  print(c.eval())

sess.close()
 

別の方法としては、使用することができますwith tf.compat.v1.Session():キャッチされない例外が発生したときなど、自動的にコンテキストを終了するには閉じているセッションを作成します。

戻り値
デフォルトのセッションとして、このセッションを使用してコンテキストマネージャ。

close

ソースを表示

このセッションを閉じます。

このメソッドを呼び出すと、セッションに関連するすべてのリソースを解放します。

発生させます
tf.errors.OpError TensorFlowセッションを閉じながらまたはそのサブクラスの1つは、エラーが発生した場合。

list_devices

ソースを表示

このセッションで使用可能なデバイスのリストを表示します。

 devices = sess.list_devices()
for d in devices:
  print(d.name)
 

どこ:

リストの各要素には、以下の性質を有します

  • name :デバイスの完全な名前を持つ文字列。例: /job:worker/replica:0/task:3/device:CPU:0
  • device_type :デバイスの種類(例えばCPUGPUTPU 。)
  • memory_limit :デバイス上で利用可能なメモリの最大量。注:デバイスに依存し、それは使用可能なメモリが実質的に少ないかもしれないことが可能です。

発生させます
tf.errors.OpError それがエラーを検出した場合(例:セッションが無効な状態にある、またはネットワークエラーが発生します)。

戻り値
セッション内のデバイスのリスト。

make_callable

ソースを表示

特定のステップを実行しているPythonの呼び出し可能で返します。

返された呼び出し可能になりますlen(feed_list) 、そのタイプの各要素のために互換性のある供給値でなければならない引数feed_list 。素子たとえば、 ifeed_listあるtf.Tensori返さ呼び出し可能に番目の引数は、整合素子の種類及び形状のnumpyのndarray(又はndarrayに変換可能なもの)でなければなりません。参照tf.Session.run許容フィードキーと値の種類の詳細については。

返された呼び出し可能と同じ戻り値の型を持っていますtf.Session.run(fetches, ...)たとえば、 fetchesあるtf.Tensor 、呼び出し可能でnumpyのndarrayを返すであろう。場合fetchesあるtf.Operation 、それは返されませんNone

引数
fetches 取得する値の値またはリスト。参照tf.Session.run許容フェッチタイプの詳細については。
feed_list (オプション)のリストfeed_dictキー。参照tf.Session.run許容送りキータイプの詳細については。
accept_options (オプション。)場合はTrue 、返されたCallable受け入れることができるようになりますtf.compat.v1.RunOptionstf.compat.v1.RunMetadataオプションのキーワード引数としてoptionsrun_metadataと同じ構文とセマンティクスで、それぞれ、 tf.Session.run特定のユースケース(プロファイリングおよびデバッグ)が、測定可能な減速をもたらすために有用であり、 Callableのパフォーマンス。デフォルト: False

戻り値
呼び出されたときには、によって定義されたステップを実行すること機能feed_list及びfetchesこのセッションです。

発生させます
TypeError 場合はfetchesまたはfeed_list引数として解釈することはできませんtf.Session.run

partial_run

ソースを表示

より多くのフィードやフェッチと実行を継続します。

これは、実験や変更の対象となります。

部分的な実行を使用するように、ユーザは、最初の呼び出しpartial_run_setup()のシーケンス次いで及びpartial_run() partial_run_setup 、その後に使用される飼料とフェッチのリストを指定partial_run呼び出しを。

任意feed_dict引数は、呼び出し側がグラフでテンソルの値をオーバーライドすることを可能にします。詳細については、実行()を参照してください。

以下は簡単な例です:

 a = array_ops.placeholder(dtypes.float32, shape=[])
b = array_ops.placeholder(dtypes.float32, shape=[])
c = array_ops.placeholder(dtypes.float32, shape=[])
r1 = math_ops.add(a, b)
r2 = math_ops.multiply(r1, c)

h = sess.partial_run_setup([r1, r2], [a, b, c])
res = sess.partial_run(h, r1, feed_dict={a: 1, b: 2})
res = sess.partial_run(h, r2, feed_dict={c: res})
 

引数
handle 部分的な実行の順序のためのハンドル。
fetches 単一のグラフ要素、グラフ要素のリスト、またはその値がグラフ要素またはグラフ要素のリストである(のためのマニュアルを参照してください辞書run )。
feed_dict 値にグラフ要素をマッピング辞書は、(前述しました)。

戻り値
もし単一の値のいずれかのfetches場合は、単一のグラフ要素、又は値のリストであるfetches同じキーでリスト、または辞書でfetchesそれが辞書である場合(のマニュアルを参照run )。

発生させます
tf.errors.OpError エラー時にそのサブクラスの1つ。

partial_run_setup

ソースを表示

部分的な実行のためのフィードやフェッチとグラフ設定します。

これは、実験や変更の対象となります。

反していることを注意runfeeds唯一のグラフ要素を指定します。テンソルは、後続によって供給されるpartial_run呼び出し。

引数
fetches 単一のグラフ要素、またはグラフ要素のリスト。
feeds 単一のグラフ要素、またはグラフ要素のリスト。

戻り値
部分的な実行のためのハンドル。

発生させます
RuntimeError この場合Session無効な状態にある(例えば閉鎖されています)。
TypeError 場合fetchesまたはfeed_dictキーが不適切なタイプのものです。
tf.errors.OpError またはそのサブクラスの1つは、TensorFlowエラーが発生した場合。

reset

ソースを表示

リセットリソース上のコンテナtarget 、そして近くに接続されているすべてのセッション。

リソースコンテナは、同じクラスタ内のすべてのワーカーに分散されているtarget 。上のリソースコンテナた場合targetリセットされ、そのコンテナに関連付けられたリソースがクリアされます。具体的には、コンテナ内のすべての変数は未定義になります:彼らはそれらの値と形状を失います。

注意:

(I)リセット()は現在、分散セッションのために実装されています。 (ⅱ)で指定されたマスター上の任意のセッションtarget閉じられます。

何のリソースコンテナが提供されていない場合は、すべてのコンテナがリセットされます。

引数
target 実行エンジンはに接続します。
containers リソースコンテナ名の文字列、またはリストNoneすべてのコンテナのすべてがリセットされている場合。
config (オプション)プロトコルの設定オプションでバッファリング。

発生させます
tf.errors.OpError またはそのサブクラスの1つに、容器を再設定中にエラーが発生した場合。

run

ソースを表示

運用と評価さテンソル実行しますfetches

この方法は、すべての実行に必要なグラフの断片を実行することによって、TensorFlow計算の「ステップ」を実行Operation毎および評価Tensorfetches 、の値を代入feed_dict対応する入力値に対して。

fetches引数は、単一のグラフ要素、または任意にネストされたリスト、タプル、namedtuple、辞書、又はその葉のグラフ要素を含むOrderedDictであってもよいです。グラフ要素は、以下のタイプのいずれかとすることができます。

  • A tf.Operation 。対応するフェッチされた値はなりませんNone
  • A tf.Tensor 。対応するフェッチされた値は、そのテンソルの値を含むnumpyのndarrayあろう。
  • A tf.sparse.SparseTensor 。対応するフェッチ値があろうtf.compat.v1.SparseTensorValueその疎テンソルの値を含みます。
  • get_tensor_handleオペアンプ。対応するフェッチされた値は、テンソルのハンドルを含むnumpyのndarrayあろう。
  • stringグラフでテンソルまたは操作の名前です。

返される値run()同じ形状持つfetches葉はTensorFlowによって返される対応する値によって置換される引数を、。

例:

    a = tf.constant([10, 20])
   b = tf.constant([1.0, 2.0])
   # 'fetches' can be a singleton
   v = session.run(a)
   # v is the numpy array [10, 20]
   # 'fetches' can be a list.
   v = session.run([a, b])
   # v is a Python list with 2 numpy arrays: the 1-D array [10, 20] and the
   # 1-D array [1.0, 2.0]
   # 'fetches' can be arbitrary lists, tuples, namedtuple, dicts:
   MyData = collections.namedtuple('MyData', ['a', 'b'])
   v = session.run({'k1': MyData(a, b), 'k2': [b, a]})
   # v is a dict with
   # v['k1'] is a MyData namedtuple with 'a' (the numpy array [10, 20]) and
   # 'b' (the numpy array [1.0, 2.0])
   # v['k2'] is a list with the numpy array [1.0, 2.0] and the numpy array
   # [10, 20].
 

任意feed_dict引数は、呼び出し側がグラフでテンソルの値をオーバーライドすることを可能にします。各キーfeed_dict次のタイプのいずれかになります。

  • キーである場合tf.Tensor 、値は、Pythonスカラー、文字列、リスト、または同じに変換することができるnumpyのndarrayであってもよいdtypeそのテンソルとして。キーがある場合また、 tf.compat.v1.placeholder 、値の形状は、プレースホルダとの互換性のためにチェックされます。
  • キーがある場合はtf.sparse.SparseTensor 、値がでなければなりませんtf.compat.v1.SparseTensorValue
  • キーは、ネストされたタプルであればTensor SまたはSparseTensor S、値は、上記のように、それらの対応する値にマップ同じ構造を持つネストされたタプルであるべきです。

各値feed_dict対応するキーのDTYPEのnumpyの配列に変換しなければなりません。

オプションのoptions引数は、[期待しRunOptions ]プロトを。オプションは、この特定のステップは、(例えば上のトレースオン)の動作を制御することができます。

オプションのrun_metadata引数は、[期待しRunMetadata ]プロト。適切な場合、このステップの非テンソル出力が収集されます。ユーザーがでトレースをオンにしたときにたとえば、 options 、プロファイル情報は、この引数に収集され、戻されます。

引数
fetches 単一のグラフ要素、グラフ要素のリスト、またはその値グラフ要素(上記)のグラフ要素またはリストである辞書。
feed_dict 値にグラフ要素をマッピング辞書は、(前述しました)。
options RunOptions ]プロトコルバッファ
run_metadata RunMetadata ]プロトコルバッファ

戻り値
もし単一の値のいずれかのfetches場合は、単一のグラフ要素、又は値のリストであるfetches同じキーでリスト、または辞書でfetchesすなわち(上記)辞書である場合。ここで注文fetches操作がコール内で評価されているが定義されていません。

発生させます
RuntimeError この場合Session無効な状態にある(例えば閉鎖されています)。
TypeError 場合fetchesまたはfeed_dictキーが不適切なタイプのものです。
ValueError 場合はfetchesまたはfeed_dictキーが無効であるかを参照してくださいTensor存在しません。

__enter__

ソースを表示

__exit__

ソースを表示