tenssorflowの計算図まとめ


計算図
TensorFlowでは計算図で計算タスクを表します。計算図は、計算の構造を定義するための向図であり、実際には一連の関数の組み合わせである。図のように、ユーザは簡単に理解できる数学関数コンポーネントを使用することによって、複雑な演算を確立することができます。
TensorFlowでの使用図は、2ステップに分けられます。計算図の作成と実行図の作成です。
図は、形式的にはノードノードとエッジEdgesから構成される。 - Nodesは、データに対する計算または操作のいくつかを丸で表します。Edgesは、矢印で表現されており、操作間で伝達される実際の値です。
建立図

graph = tf.Graph()
コンテキストマネージャにアクセス

with graph.as_default(): 
使う?遣う with 私達がcontext managerでTensorFlowに私達はある具体的なgraphにOpを追加します。
図を実行するには、セッション中に起動されなければなりません。セッションは、図のopをCPUやGPUなどのデバイスに配布し、opを実行する方法を提供します。これらの方法は実行後、発生したテンソルを返します。
シシシシ葃开开session

sess = tf.Session()`
Sessionを開くと、望むTensorの値をrun()で計算することができます。
会話を使い終わったら、消してください。

sess.close()
Fetch
fetchはsession.run()のパラメータです。私たちが実行したいopやTensor、または彼らが対応するlist構造のいずれかを受信できます。
  • はtenssorであれば、session.run()が出力するのはNumpy配列
  • です。
  • Opなら、session.run()が出力するのはNone
  • です。
    例えば、sess.run(b)は、Sessionがbを計算するために必要な結点を全部見つけて順番に実行し、結果を出力するということです。
    グローバル変数初期化tf.global_variables_initializer()定義されたすべてのVarable変数を準備して、後続の使用を容易にすることを表します。このOpはsession.runにも伝えられます。
    
    init = tf.global_variables_initializer()
    …
    sess.run(init)
    
    
    テンソルTensorとOP
    tensor flowでは、すべてのデータ構造をtensorを使用して表し、計算図ではOp結点間を操作して伝達するのはTensorです。
  • は、tenssorを定義する時に、直接numpyを使用してOp結点に渡すことができます。tens flowのOpはpythonのデータタイプをtenssorに変換してnumbers、bollans、stingsまたはlistを含みます。
  • 図のどの結点もOperationの略称と呼ばれています。Op
  • の各Opの出力は、他のOpまたはsess.run()
  • に伝達される。
    Varable
    Varableでは、変数は図実行中の状態情報を維持し、パラメータ値を保持し更新するために必要であり、動的に調整する必要がある。
  • TensorとOperationは同じで、Varableは時間とともに変化することができる
  • です。
  • Varabelesは、テナントを使用するOpにおいて、現在の値を使用してOp
  • に渡すことができる。
  • Varableの通常の初期値は、いくつかの大きな0,1または無作為値tenssor、または内蔵op:tf.zros()、tf.ones()などの
  • である。
  • Varableはgraphにおいて、状態はsessionによって管理され、sessionにおいて初期化され、sessionはvariableの現在の値を追跡することができる。
  • セッションは、一部のvariable
  • だけ初期化することができます。
  • はtf.variables_を使用します。initializer、初期化変数リスト
  • に入る。
  • variableの値は変更できる
  • です。
  • は、例えば、variable.assign、またはvariable.assign_を使用します。add(1)
  • の各セッションは、独立したvariable変数値を維持し、同じvariableの異なるセッション値は異なることができる。
  • 各種のOptimizer最適化器が機械学習モデルを訓練すると、variableが変化します。variableの中のtranable=False属性を使うとOptimizerに変更されなくてもいいです。
  • name_scopes
  • name_sopesは図を管理するために使用することができます。Opのセットを一つのブロックに入れることができます。
  • 以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。