mirror of
https://github.com/tensorflow/haskell.git
synced 2024-06-01 18:43:36 +02:00
6b19e54722
* Update README to refer to 2.3.0-gpu. * Remove old package documentation from haddock directory.
1607 lines
201 KiB
HTML
1607 lines
201 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-comment">-- Copyright 2016 TensorFlow authors.</span><span>
|
|
</span><span id="line-2"></span><span class="hs-comment">--</span><span>
|
|
</span><span id="line-3"></span><span class="hs-comment">-- Licensed under the Apache License, Version 2.0 (the "License");</span><span>
|
|
</span><span id="line-4"></span><span class="hs-comment">-- you may not use this file except in compliance with the License.</span><span>
|
|
</span><span id="line-5"></span><span class="hs-comment">-- You may obtain a copy of the License at</span><span>
|
|
</span><span id="line-6"></span><span class="hs-comment">--</span><span>
|
|
</span><span id="line-7"></span><span class="hs-comment">-- http://www.apache.org/licenses/LICENSE-2.0</span><span>
|
|
</span><span id="line-8"></span><span class="hs-comment">--</span><span>
|
|
</span><span id="line-9"></span><span class="hs-comment">-- Unless required by applicable law or agreed to in writing, software</span><span>
|
|
</span><span id="line-10"></span><span class="hs-comment">-- distributed under the License is distributed on an "AS IS" BASIS,</span><span>
|
|
</span><span id="line-11"></span><span class="hs-comment">-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span>
|
|
</span><span id="line-12"></span><span class="hs-comment">-- See the License for the specific language governing permissions and</span><span>
|
|
</span><span id="line-13"></span><span class="hs-comment">-- limitations under the License.</span><span>
|
|
</span><span id="line-14"></span><span>
|
|
</span><span id="line-15"></span><span class="hs-pragma">{-# LANGUAGE GeneralizedNewtypeDeriving #-}</span><span>
|
|
</span><span id="line-16"></span><span class="hs-pragma">{-# LANGUAGE FlexibleInstances #-}</span><span>
|
|
</span><span id="line-17"></span><span class="hs-pragma">{-# LANGUAGE LambdaCase #-}</span><span>
|
|
</span><span id="line-18"></span><span class="hs-pragma">{-# LANGUAGE FunctionalDependencies #-}</span><span>
|
|
</span><span id="line-19"></span><span class="hs-pragma">{-# LANGUAGE MultiParamTypeClasses #-}</span><span>
|
|
</span><span id="line-20"></span><span class="hs-pragma">{-# LANGUAGE OverloadedStrings #-}</span><span>
|
|
</span><span id="line-21"></span><span class="hs-pragma">{-# LANGUAGE Rank2Types #-}</span><span>
|
|
</span><span id="line-22"></span><span class="hs-pragma">{-# LANGUAGE TypeFamilies #-}</span><span>
|
|
</span><span id="line-23"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">TensorFlow.Build</span><span>
|
|
</span><span id="line-24"></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><span class="hs-comment">-- * Graph node types</span></span><span>
|
|
</span><span id="line-25"></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#ControlNode"><span class="hs-identifier">ControlNode</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-26"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#Unique"><span class="hs-identifier">Unique</span></a></span><span>
|
|
</span><span id="line-27"></span><span> </span><span class="annot"><span class="hs-comment">-- * Ops</span></span><span>
|
|
</span><span id="line-28"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#explicitName"><span class="hs-identifier">explicitName</span></a></span><span>
|
|
</span><span id="line-29"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#implicitName"><span class="hs-identifier">implicitName</span></a></span><span>
|
|
</span><span id="line-30"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#opDef"><span class="hs-identifier">opDef</span></a></span><span>
|
|
</span><span id="line-31"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#opDefWithName"><span class="hs-identifier">opDefWithName</span></a></span><span>
|
|
</span><span id="line-32"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Output.html#opName"><span class="hs-identifier">opName</span></a></span><span>
|
|
</span><span id="line-33"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Output.html#opType"><span class="hs-identifier">opType</span></a></span><span>
|
|
</span><span id="line-34"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Output.html#opAttr"><span class="hs-identifier">opAttr</span></a></span><span>
|
|
</span><span id="line-35"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Output.html#opInputs"><span class="hs-identifier">opInputs</span></a></span><span>
|
|
</span><span id="line-36"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Output.html#opControlInputs"><span class="hs-identifier">opControlInputs</span></a></span><span>
|
|
</span><span id="line-37"></span><span> </span><span class="annot"><span class="hs-comment">-- * The Build monad</span></span><span>
|
|
</span><span id="line-38"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier">GraphState</span></a></span><span>
|
|
</span><span id="line-39"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#renderedNodeDefs"><span class="hs-identifier">renderedNodeDefs</span></a></span><span>
|
|
</span><span id="line-40"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier">BuildT</span></a></span><span>
|
|
</span><span id="line-41"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#Build"><span class="hs-identifier">Build</span></a></span><span>
|
|
</span><span id="line-42"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#MonadBuild"><span class="hs-identifier">MonadBuild</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-43"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#addInitializer"><span class="hs-identifier">addInitializer</span></a></span><span>
|
|
</span><span id="line-44"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#hoistBuildT"><span class="hs-identifier">hoistBuildT</span></a></span><span>
|
|
</span><span id="line-45"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#evalBuildT"><span class="hs-identifier">evalBuildT</span></a></span><span>
|
|
</span><span id="line-46"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#runBuildT"><span class="hs-identifier">runBuildT</span></a></span><span>
|
|
</span><span id="line-47"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#asGraphDef"><span class="hs-identifier">asGraphDef</span></a></span><span>
|
|
</span><span id="line-48"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#addGraphDef"><span class="hs-identifier">addGraphDef</span></a></span><span>
|
|
</span><span id="line-49"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#flushInitializers"><span class="hs-identifier">flushInitializers</span></a></span><span>
|
|
</span><span id="line-50"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#flushNodeBuffer"><span class="hs-identifier">flushNodeBuffer</span></a></span><span>
|
|
</span><span id="line-51"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#summaries"><span class="hs-identifier">summaries</span></a></span><span>
|
|
</span><span id="line-52"></span><span> </span><span class="annot"><span class="hs-comment">-- * Creating and looking up Ops</span></span><span>
|
|
</span><span id="line-53"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#getOrAddOp"><span class="hs-identifier">getOrAddOp</span></a></span><span>
|
|
</span><span id="line-54"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#addNewOp"><span class="hs-identifier">addNewOp</span></a></span><span>
|
|
</span><span id="line-55"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#encodeOutput"><span class="hs-identifier">encodeOutput</span></a></span><span>
|
|
</span><span id="line-56"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#lookupNode"><span class="hs-identifier">lookupNode</span></a></span><span>
|
|
</span><span id="line-57"></span><span> </span><span class="annot"><span class="hs-comment">-- * Modifying all nodes in a Build action</span></span><span>
|
|
</span><span id="line-58"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#withStateLens"><span class="hs-identifier">withStateLens</span></a></span><span>
|
|
</span><span id="line-59"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#withDevice"><span class="hs-identifier">withDevice</span></a></span><span>
|
|
</span><span id="line-60"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#withNameScope"><span class="hs-identifier">withNameScope</span></a></span><span>
|
|
</span><span id="line-61"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#withNodeDependencies"><span class="hs-identifier">withNodeDependencies</span></a></span><span>
|
|
</span><span id="line-62"></span><span> </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
|
|
</span><span id="line-63"></span><span>
|
|
</span><span id="line-64"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Data.ProtoLens.Message</span></span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">defMessage</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-65"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Control.Monad.Catch</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">MonadThrow</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier">MonadCatch</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier">MonadMask</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-66"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Control.Monad.Fix</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">MonadFix</span></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-67"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Control.Monad.IO.Class</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">MonadIO</span></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-68"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Control.Monad.Trans.Class</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">MonadTrans</span></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-69"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Control.Monad.Trans.State.Strict</span></span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">StateT</span></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier">mapStateT</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier">evalStateT</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-70"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Data.Functor.Identity</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">Identity</span></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-71"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><span class="hs-identifier">Data.Map.Strict</span></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Map</span></span><span>
|
|
</span><span id="line-72"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><span class="hs-identifier">Data.Set</span></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Set</span></span><span>
|
|
</span><span id="line-73"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Data.Set</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">Set</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-74"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Data.String</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">IsString</span></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-75"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Data.Text</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">Text</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-76"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><span class="hs-identifier">Data.Text</span></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Text</span></span><span>
|
|
</span><span id="line-77"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Lens.Family2</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">Lens'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-operator">(.~)</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-operator">(^.)</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-operator">(&)</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-78"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Lens.Family2.State.Strict</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">MonadState</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier">use</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier">uses</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-operator">(.=)</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-operator">(<>=)</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-operator">(%=)</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-79"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Lens.Family2.Unchecked</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">lens</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-80"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Proto.Tensorflow.Core.Framework.Graph</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">GraphDef</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-81"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Proto.Tensorflow.Core.Framework.Graph_Fields</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">node</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-82"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Proto.Tensorflow.Core.Framework.NodeDef</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier">NodeDef</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-83"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-identifier">Proto.Tensorflow.Core.Framework.NodeDef_Fields</span></span><span>
|
|
</span><span id="line-84"></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><span class="hs-identifier">attr</span></span><span>
|
|
</span><span id="line-85"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier">input</span></span><span>
|
|
</span><span id="line-86"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier">device</span></span><span>
|
|
</span><span id="line-87"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier">name</span></span><span>
|
|
</span><span id="line-88"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier">op</span></span><span>
|
|
</span><span id="line-89"></span><span> </span><span class="hs-special">)</span><span>
|
|
</span><span id="line-90"></span><span>
|
|
</span><span id="line-91"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="TensorFlow.Output.html"><span class="hs-identifier">TensorFlow.Output</span></a></span><span>
|
|
</span><span id="line-92"></span><span>
|
|
</span><span id="line-93"></span><span class="hs-keyword">newtype</span><span> </span><span id="Unique"><span class="annot"><a href="TensorFlow.Build.html#Unique"><span class="hs-identifier hs-var">Unique</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="Unique"><span class="annot"><a href="TensorFlow.Build.html#Unique"><span class="hs-identifier hs-var">Unique</span></a></span></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
|
|
</span><span id="line-94"></span><span> </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679165590"><span id="local-6989586621679165592"><span class="annot"><span class="annottext">Unique -> Unique -> Bool
|
|
(Unique -> Unique -> Bool)
|
|
-> (Unique -> Unique -> Bool) -> Eq Unique
|
|
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
|
|
/= :: Unique -> Unique -> Bool
|
|
$c/= :: Unique -> Unique -> Bool
|
|
== :: Unique -> Unique -> Bool
|
|
$c== :: Unique -> Unique -> Bool
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679165574"><span id="local-6989586621679165576"><span id="local-6989586621679165578"><span id="local-6989586621679165580"><span id="local-6989586621679165582"><span id="local-6989586621679165584"><span id="local-6989586621679165586"><span class="annot"><span class="annottext">Eq Unique
|
|
Eq Unique =>
|
|
(Unique -> Unique -> Ordering)
|
|
-> (Unique -> Unique -> Bool)
|
|
-> (Unique -> Unique -> Bool)
|
|
-> (Unique -> Unique -> Bool)
|
|
-> (Unique -> Unique -> Bool)
|
|
-> (Unique -> Unique -> Unique)
|
|
-> (Unique -> Unique -> Unique)
|
|
-> Ord Unique
|
|
Unique -> Unique -> Bool
|
|
Unique -> Unique -> Ordering
|
|
Unique -> Unique -> Unique
|
|
forall a.
|
|
Eq a =>
|
|
(a -> a -> Ordering)
|
|
-> (a -> a -> Bool)
|
|
-> (a -> a -> Bool)
|
|
-> (a -> a -> Bool)
|
|
-> (a -> a -> Bool)
|
|
-> (a -> a -> a)
|
|
-> (a -> a -> a)
|
|
-> Ord a
|
|
min :: Unique -> Unique -> Unique
|
|
$cmin :: Unique -> Unique -> Unique
|
|
max :: Unique -> Unique -> Unique
|
|
$cmax :: Unique -> Unique -> Unique
|
|
>= :: Unique -> Unique -> Bool
|
|
$c>= :: Unique -> Unique -> Bool
|
|
> :: Unique -> Unique -> Bool
|
|
$c> :: Unique -> Unique -> Bool
|
|
<= :: Unique -> Unique -> Bool
|
|
$c<= :: Unique -> Unique -> Bool
|
|
< :: Unique -> Unique -> Bool
|
|
$c< :: Unique -> Unique -> Bool
|
|
compare :: Unique -> Unique -> Ordering
|
|
$ccompare :: Unique -> Unique -> Ordering
|
|
$cp1Ord :: Eq Unique
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679165557"><span id="local-6989586621679165559"><span id="local-6989586621679165561"><span id="local-6989586621679165563"><span id="local-6989586621679165565"><span id="local-6989586621679165567"><span id="local-6989586621679165569"><span id="local-6989586621679165571"><span class="annot"><span class="annottext">Int -> Unique
|
|
Unique -> Int
|
|
Unique -> [Unique]
|
|
Unique -> Unique
|
|
Unique -> Unique -> [Unique]
|
|
Unique -> Unique -> Unique -> [Unique]
|
|
(Unique -> Unique)
|
|
-> (Unique -> Unique)
|
|
-> (Int -> Unique)
|
|
-> (Unique -> Int)
|
|
-> (Unique -> [Unique])
|
|
-> (Unique -> Unique -> [Unique])
|
|
-> (Unique -> Unique -> [Unique])
|
|
-> (Unique -> Unique -> Unique -> [Unique])
|
|
-> Enum Unique
|
|
forall a.
|
|
(a -> a)
|
|
-> (a -> a)
|
|
-> (Int -> a)
|
|
-> (a -> Int)
|
|
-> (a -> [a])
|
|
-> (a -> a -> [a])
|
|
-> (a -> a -> [a])
|
|
-> (a -> a -> a -> [a])
|
|
-> Enum a
|
|
enumFromThenTo :: Unique -> Unique -> Unique -> [Unique]
|
|
$cenumFromThenTo :: Unique -> Unique -> Unique -> [Unique]
|
|
enumFromTo :: Unique -> Unique -> [Unique]
|
|
$cenumFromTo :: Unique -> Unique -> [Unique]
|
|
enumFromThen :: Unique -> Unique -> [Unique]
|
|
$cenumFromThen :: Unique -> Unique -> [Unique]
|
|
enumFrom :: Unique -> [Unique]
|
|
$cenumFrom :: Unique -> [Unique]
|
|
fromEnum :: Unique -> Int
|
|
$cfromEnum :: Unique -> Int
|
|
toEnum :: Int -> Unique
|
|
$ctoEnum :: Int -> Unique
|
|
pred :: Unique -> Unique
|
|
$cpred :: Unique -> Unique
|
|
succ :: Unique -> Unique
|
|
$csucc :: Unique -> Unique
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Enum</span></span></span></span></span></span></span></span></span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-95"></span><span>
|
|
</span><span id="line-96"></span><span class="hs-comment">--------------</span><span>
|
|
</span><span id="line-97"></span><span>
|
|
</span><span id="line-98"></span><span class="annot"><a href="TensorFlow.Build.html#implicitName"><span class="hs-identifier hs-type">implicitName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Output.html#PendingNodeName"><span class="hs-identifier hs-type">PendingNodeName</span></a></span><span>
|
|
</span><span id="line-99"></span><span id="implicitName"><span class="annot"><span class="annottext">implicitName :: PendingNodeName
|
|
</span><a href="TensorFlow.Build.html#implicitName"><span class="hs-identifier hs-var hs-var">implicitName</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PendingNodeName
|
|
</span><a href="TensorFlow.Output.html#ImplicitName"><span class="hs-identifier hs-var">ImplicitName</span></a></span><span>
|
|
</span><span id="line-100"></span><span>
|
|
</span><span id="line-101"></span><span class="annot"><a href="TensorFlow.Build.html#explicitName"><span class="hs-identifier hs-type">explicitName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Text</span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#PendingNodeName"><span class="hs-identifier hs-type">PendingNodeName</span></a></span><span>
|
|
</span><span id="line-102"></span><span id="explicitName"><span class="annot"><span class="annottext">explicitName :: Text -> PendingNodeName
|
|
</span><a href="TensorFlow.Build.html#explicitName"><span class="hs-identifier hs-var hs-var">explicitName</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Text -> PendingNodeName
|
|
</span><a href="TensorFlow.Output.html#ExplicitName"><span class="hs-identifier hs-var">ExplicitName</span></a></span><span>
|
|
</span><span id="line-103"></span><span>
|
|
</span><span id="line-104"></span><span class="hs-keyword">newtype</span><span> </span><span id="Scope"><span class="annot"><a href="TensorFlow.Build.html#Scope"><span class="hs-identifier hs-var">Scope</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="Scope"><span class="annot"><a href="TensorFlow.Build.html#Scope"><span class="hs-identifier hs-var">Scope</span></a></span></span><span> </span><span class="hs-special">{</span><span id="unScope"><span class="annot"><span class="annottext">Scope -> Text
|
|
</span><a href="TensorFlow.Build.html#unScope"><span class="hs-identifier hs-var hs-var">unScope</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Text</span></span><span class="hs-special">}</span><span>
|
|
</span><span id="line-105"></span><span> </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679165548"><span id="local-6989586621679165550"><span class="annot"><span class="annottext">Scope -> Scope -> Bool
|
|
(Scope -> Scope -> Bool) -> (Scope -> Scope -> Bool) -> Eq Scope
|
|
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
|
|
/= :: Scope -> Scope -> Bool
|
|
$c/= :: Scope -> Scope -> Bool
|
|
== :: Scope -> Scope -> Bool
|
|
$c== :: Scope -> Scope -> Bool
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679165533"><span id="local-6989586621679165535"><span id="local-6989586621679165537"><span id="local-6989586621679165539"><span id="local-6989586621679165541"><span id="local-6989586621679165543"><span id="local-6989586621679165545"><span class="annot"><span class="annottext">Eq Scope
|
|
Eq Scope =>
|
|
(Scope -> Scope -> Ordering)
|
|
-> (Scope -> Scope -> Bool)
|
|
-> (Scope -> Scope -> Bool)
|
|
-> (Scope -> Scope -> Bool)
|
|
-> (Scope -> Scope -> Bool)
|
|
-> (Scope -> Scope -> Scope)
|
|
-> (Scope -> Scope -> Scope)
|
|
-> Ord Scope
|
|
Scope -> Scope -> Bool
|
|
Scope -> Scope -> Ordering
|
|
Scope -> Scope -> Scope
|
|
forall a.
|
|
Eq a =>
|
|
(a -> a -> Ordering)
|
|
-> (a -> a -> Bool)
|
|
-> (a -> a -> Bool)
|
|
-> (a -> a -> Bool)
|
|
-> (a -> a -> Bool)
|
|
-> (a -> a -> a)
|
|
-> (a -> a -> a)
|
|
-> Ord a
|
|
min :: Scope -> Scope -> Scope
|
|
$cmin :: Scope -> Scope -> Scope
|
|
max :: Scope -> Scope -> Scope
|
|
$cmax :: Scope -> Scope -> Scope
|
|
>= :: Scope -> Scope -> Bool
|
|
$c>= :: Scope -> Scope -> Bool
|
|
> :: Scope -> Scope -> Bool
|
|
$c> :: Scope -> Scope -> Bool
|
|
<= :: Scope -> Scope -> Bool
|
|
$c<= :: Scope -> Scope -> Bool
|
|
< :: Scope -> Scope -> Bool
|
|
$c< :: Scope -> Scope -> Bool
|
|
compare :: Scope -> Scope -> Ordering
|
|
$ccompare :: Scope -> Scope -> Ordering
|
|
$cp1Ord :: Eq Scope
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679165531"><span class="annot"><span class="annottext">String -> Scope
|
|
(String -> Scope) -> IsString Scope
|
|
forall a. (String -> a) -> IsString a
|
|
fromString :: String -> Scope
|
|
$cfromString :: String -> Scope
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var">IsString</span></span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-106"></span><span>
|
|
</span><span id="line-107"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679165525"><span id="local-6989586621679165528"><span class="annot"><span class="hs-identifier hs-type">Show</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#Scope"><span class="hs-identifier hs-type">Scope</span></a></span></span></span><span> </span><span class="hs-keyword">where</span><span>
|
|
</span><span id="line-108"></span><span> </span><span id="local-6989586621679165523"><span class="annot"><span class="annottext">show :: Scope -> String
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var">show</span></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Text -> String
|
|
forall a. Show a => a -> String
|
|
</span><span class="hs-identifier hs-var">show</span></span><span> </span><span class="annot"><span class="annottext">(Text -> String) -> (Scope -> Text) -> Scope -> String
|
|
forall b c a. (b -> c) -> (a -> b) -> a -> c
|
|
</span><span class="hs-operator hs-var">.</span></span><span> </span><span class="annot"><span class="annottext">Scope -> Text
|
|
</span><a href="TensorFlow.Build.html#unScope"><span class="hs-identifier hs-var hs-var">unScope</span></a></span><span>
|
|
</span><span id="line-109"></span><span>
|
|
</span><span id="line-110"></span><span class="annot"><a href="TensorFlow.Build.html#opDef"><span class="hs-identifier hs-type">opDef</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Output.html#OpType"><span class="hs-identifier hs-type">OpType</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#OpDef"><span class="hs-identifier hs-type">OpDef</span></a></span><span>
|
|
</span><span id="line-111"></span><span id="opDef"><span class="annot"><span class="annottext">opDef :: OpType -> OpDef
|
|
</span><a href="TensorFlow.Build.html#opDef"><span class="hs-identifier hs-var hs-var">opDef</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PendingNodeName -> OpType -> OpDef
|
|
</span><a href="TensorFlow.Build.html#opDefWithName"><span class="hs-identifier hs-var">opDefWithName</span></a></span><span> </span><span class="annot"><span class="annottext">PendingNodeName
|
|
</span><a href="TensorFlow.Output.html#ImplicitName"><span class="hs-identifier hs-var">ImplicitName</span></a></span><span>
|
|
</span><span id="line-112"></span><span>
|
|
</span><span id="line-113"></span><span class="annot"><a href="TensorFlow.Build.html#opDefWithName"><span class="hs-identifier hs-type">opDefWithName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Output.html#PendingNodeName"><span class="hs-identifier hs-type">PendingNodeName</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#OpType"><span class="hs-identifier hs-type">OpType</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#OpDef"><span class="hs-identifier hs-type">OpDef</span></a></span><span>
|
|
</span><span id="line-114"></span><span id="opDefWithName"><span class="annot"><span class="annottext">opDefWithName :: PendingNodeName -> OpType -> OpDef
|
|
</span><a href="TensorFlow.Build.html#opDefWithName"><span class="hs-identifier hs-var hs-var">opDefWithName</span></a></span></span><span> </span><span id="local-6989586621679165520"><span class="annot"><span class="annottext">n :: PendingNodeName
|
|
</span><a href="#local-6989586621679165520"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621679165519"><span class="annot"><span class="annottext">t :: OpType
|
|
</span><a href="#local-6989586621679165519"><span class="hs-identifier hs-var">t</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">$WOpDef :: PendingNodeName
|
|
-> OpType -> Map Text AttrValue -> [Output] -> [NodeName] -> OpDef
|
|
</span><a href="TensorFlow.Output.html#%24WOpDef"><span class="hs-identifier hs-type hs-type">OpDef</span></a></span><span>
|
|
</span><span id="line-115"></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">_opName :: PendingNodeName
|
|
</span><a href="TensorFlow.Output.html#_opName"><span class="hs-identifier hs-var">_opName</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PendingNodeName
|
|
</span><a href="#local-6989586621679165520"><span class="hs-identifier hs-var">n</span></a></span><span>
|
|
</span><span id="line-116"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">_opType :: OpType
|
|
</span><a href="TensorFlow.Output.html#_opType"><span class="hs-identifier hs-var">_opType</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">OpType
|
|
</span><a href="#local-6989586621679165519"><span class="hs-identifier hs-var">t</span></a></span><span>
|
|
</span><span id="line-117"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">_opAttrs :: Map Text AttrValue
|
|
</span><a href="TensorFlow.Output.html#_opAttrs"><span class="hs-identifier hs-var">_opAttrs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Map Text AttrValue
|
|
forall k a. Map k a
|
|
</span><span class="hs-identifier hs-var">Map.empty</span></span><span>
|
|
</span><span id="line-118"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">_opInputs :: [Output]
|
|
</span><a href="TensorFlow.Output.html#_opInputs"><span class="hs-identifier hs-var">_opInputs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
|
|
</span><span id="line-119"></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">_opControlInputs :: [NodeName]
|
|
</span><a href="TensorFlow.Output.html#_opControlInputs"><span class="hs-identifier hs-var">_opControlInputs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
|
|
</span><span id="line-120"></span><span> </span><span class="hs-special">}</span><span>
|
|
</span><span id="line-121"></span><span>
|
|
</span><span id="line-122"></span><span class="hs-keyword">data</span><span> </span><span id="GraphState"><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-var">GraphState</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="GraphState"><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-var">GraphState</span></a></span></span><span>
|
|
</span><span id="line-123"></span><span> </span><span class="hs-special">{</span><span> </span><span id="_renderedNodes"><span class="annot"><span class="annottext">GraphState -> Map PendingNode NodeDef
|
|
</span><a href="TensorFlow.Build.html#_renderedNodes"><span class="hs-identifier hs-var hs-var">_renderedNodes</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Map.Map</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#PendingNode"><span class="hs-identifier hs-type">PendingNode</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">NodeDef</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-124"></span><span> </span><span class="hs-comment">-- ^ Nodes which have been rendered. Keeps track of the unique ID we</span><span>
|
|
</span><span id="line-125"></span><span> </span><span class="hs-comment">-- assign each implicitly-named node. Also prevents us from adding the</span><span>
|
|
</span><span id="line-126"></span><span> </span><span class="hs-comment">-- same node (implicit or explicit) more than once to the nodeBuffer.</span><span>
|
|
</span><span id="line-127"></span><span> </span><span class="hs-special">,</span><span> </span><span id="_renderedNodeDefs"><span class="annot"><span class="annottext">GraphState -> Map NodeName NodeDef
|
|
</span><a href="TensorFlow.Build.html#_renderedNodeDefs"><span class="hs-identifier hs-var hs-var">_renderedNodeDefs</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Map.Map</span></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-type">NodeName</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">NodeDef</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-128"></span><span> </span><span class="hs-comment">-- ^ The NodeDefs of nodes which have been rendered. Used by the</span><span>
|
|
</span><span id="line-129"></span><span> </span><span class="hs-comment">-- Gradient module to inspect the node graph.</span><span>
|
|
</span><span id="line-130"></span><span> </span><span class="hs-special">,</span><span> </span><span id="_nodeBuffer"><span class="annot"><span class="annottext">GraphState -> [NodeDef]
|
|
</span><a href="TensorFlow.Build.html#_nodeBuffer"><span class="hs-identifier hs-var hs-var">_nodeBuffer</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="hs-identifier hs-type">NodeDef</span></span><span class="hs-special">]</span><span>
|
|
</span><span id="line-131"></span><span> </span><span class="hs-comment">-- ^ A list of nodes that should be passed to TensorFlow during</span><span>
|
|
</span><span id="line-132"></span><span> </span><span class="hs-comment">-- the next call to Session.extend (TF_ExtendGraph).</span><span>
|
|
</span><span id="line-133"></span><span> </span><span class="hs-special">,</span><span> </span><span id="_nextUnique"><span class="annot"><span class="annottext">GraphState -> Unique
|
|
</span><a href="TensorFlow.Build.html#_nextUnique"><span class="hs-identifier hs-var hs-var">_nextUnique</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="TensorFlow.Build.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span>
|
|
</span><span id="line-134"></span><span> </span><span class="hs-comment">-- ^ Unique ID for the next node</span><span>
|
|
</span><span id="line-135"></span><span> </span><span class="hs-comment">-- TODO(judahjacobson): watch for clashes between auto and user names.</span><span>
|
|
</span><span id="line-136"></span><span> </span><span class="hs-special">,</span><span> </span><span id="_defaultDevice"><span class="annot"><span class="annottext">GraphState -> Maybe Device
|
|
</span><a href="TensorFlow.Build.html#_defaultDevice"><span class="hs-identifier hs-var hs-var">_defaultDevice</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Maybe</span></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#Device"><span class="hs-identifier hs-type">Device</span></a></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-137"></span><span> </span><span class="hs-special">,</span><span> </span><span id="_currentScope"><span class="annot"><span class="annottext">GraphState -> [Scope]
|
|
</span><a href="TensorFlow.Build.html#_currentScope"><span class="hs-identifier hs-var hs-var">_currentScope</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="TensorFlow.Build.html#Scope"><span class="hs-identifier hs-type">Scope</span></a></span><span class="hs-special">]</span><span>
|
|
</span><span id="line-138"></span><span> </span><span class="hs-special">,</span><span> </span><span id="_defaultControlInputs"><span class="annot"><span class="annottext">GraphState -> Set NodeName
|
|
</span><a href="TensorFlow.Build.html#_defaultControlInputs"><span class="hs-identifier hs-var hs-var">_defaultControlInputs</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Set</span></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-type">NodeName</span></a></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-139"></span><span> </span><span class="hs-special">,</span><span> </span><span id="_initializationNodes"><span class="annot"><span class="annottext">GraphState -> [NodeName]
|
|
</span><a href="TensorFlow.Build.html#_initializationNodes"><span class="hs-identifier hs-var hs-var">_initializationNodes</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-type">NodeName</span></a></span><span class="hs-special">]</span><span>
|
|
</span><span id="line-140"></span><span> </span><span class="hs-comment">-- ^ The nodes to run next time a TF.run is issued, typically</span><span>
|
|
</span><span id="line-141"></span><span> </span><span class="hs-comment">-- variable initializers.</span><span>
|
|
</span><span id="line-142"></span><span> </span><span class="hs-special">,</span><span> </span><span id="_summaries"><span class="annot"><span class="annottext">GraphState -> [Output]
|
|
</span><a href="TensorFlow.Build.html#_summaries"><span class="hs-identifier hs-var hs-var">_summaries</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="TensorFlow.Output.html#Output"><span class="hs-identifier hs-type">Output</span></a></span><span class="hs-special">]</span><span>
|
|
</span><span id="line-143"></span><span> </span><span class="hs-comment">-- ^ The tensors for summary (ByteString type)</span><span>
|
|
</span><span id="line-144"></span><span> </span><span class="hs-special">}</span><span>
|
|
</span><span id="line-145"></span><span>
|
|
</span><span id="line-146"></span><span class="hs-comment">-- | A node definition without its final name. Used as a key in the</span><span>
|
|
</span><span id="line-147"></span><span class="hs-comment">-- "renderedNodes" map.</span><span>
|
|
</span><span id="line-148"></span><span class="hs-comment">-- The NodeDef contained inside has an empty "name" field.</span><span>
|
|
</span><span id="line-149"></span><span class="hs-keyword">data</span><span> </span><span id="PendingNode"><span class="annot"><a href="TensorFlow.Build.html#PendingNode"><span class="hs-identifier hs-var">PendingNode</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="PendingNode"><span class="annot"><a href="TensorFlow.Build.html#PendingNode"><span class="hs-identifier hs-var">PendingNode</span></a></span></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="TensorFlow.Build.html#Scope"><span class="hs-identifier hs-type">Scope</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="TensorFlow.Output.html#PendingNodeName"><span class="hs-identifier hs-type">PendingNodeName</span></a></span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">NodeDef</span></span><span>
|
|
</span><span id="line-150"></span><span> </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679165496"><span id="local-6989586621679165498"><span class="annot"><span class="annottext">PendingNode -> PendingNode -> Bool
|
|
(PendingNode -> PendingNode -> Bool)
|
|
-> (PendingNode -> PendingNode -> Bool) -> Eq PendingNode
|
|
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
|
|
/= :: PendingNode -> PendingNode -> Bool
|
|
$c/= :: PendingNode -> PendingNode -> Bool
|
|
== :: PendingNode -> PendingNode -> Bool
|
|
$c== :: PendingNode -> PendingNode -> Bool
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679165481"><span id="local-6989586621679165483"><span id="local-6989586621679165485"><span id="local-6989586621679165487"><span id="local-6989586621679165489"><span id="local-6989586621679165491"><span id="local-6989586621679165493"><span class="annot"><span class="annottext">Eq PendingNode
|
|
Eq PendingNode =>
|
|
(PendingNode -> PendingNode -> Ordering)
|
|
-> (PendingNode -> PendingNode -> Bool)
|
|
-> (PendingNode -> PendingNode -> Bool)
|
|
-> (PendingNode -> PendingNode -> Bool)
|
|
-> (PendingNode -> PendingNode -> Bool)
|
|
-> (PendingNode -> PendingNode -> PendingNode)
|
|
-> (PendingNode -> PendingNode -> PendingNode)
|
|
-> Ord PendingNode
|
|
PendingNode -> PendingNode -> Bool
|
|
PendingNode -> PendingNode -> Ordering
|
|
PendingNode -> PendingNode -> PendingNode
|
|
forall a.
|
|
Eq a =>
|
|
(a -> a -> Ordering)
|
|
-> (a -> a -> Bool)
|
|
-> (a -> a -> Bool)
|
|
-> (a -> a -> Bool)
|
|
-> (a -> a -> Bool)
|
|
-> (a -> a -> a)
|
|
-> (a -> a -> a)
|
|
-> Ord a
|
|
min :: PendingNode -> PendingNode -> PendingNode
|
|
$cmin :: PendingNode -> PendingNode -> PendingNode
|
|
max :: PendingNode -> PendingNode -> PendingNode
|
|
$cmax :: PendingNode -> PendingNode -> PendingNode
|
|
>= :: PendingNode -> PendingNode -> Bool
|
|
$c>= :: PendingNode -> PendingNode -> Bool
|
|
> :: PendingNode -> PendingNode -> Bool
|
|
$c> :: PendingNode -> PendingNode -> Bool
|
|
<= :: PendingNode -> PendingNode -> Bool
|
|
$c<= :: PendingNode -> PendingNode -> Bool
|
|
< :: PendingNode -> PendingNode -> Bool
|
|
$c< :: PendingNode -> PendingNode -> Bool
|
|
compare :: PendingNode -> PendingNode -> Ordering
|
|
$ccompare :: PendingNode -> PendingNode -> Ordering
|
|
$cp1Ord :: Eq PendingNode
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-151"></span><span>
|
|
</span><span id="line-152"></span><span class="hs-comment">-- Returns an _incomplete_ NodeDef. The name is fixed by addNewOpFromPending.</span><span>
|
|
</span><span id="line-153"></span><span class="annot"><a href="TensorFlow.Build.html#pendingNodeDef"><span class="hs-identifier hs-type">pendingNodeDef</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#PendingNode"><span class="hs-identifier hs-type">PendingNode</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="hs-identifier hs-type">NodeDef</span></span><span>
|
|
</span><span id="line-154"></span><span id="pendingNodeDef"><span class="annot"><span class="annottext">pendingNodeDef :: PendingNode -> NodeDef
|
|
</span><a href="TensorFlow.Build.html#pendingNodeDef"><span class="hs-identifier hs-var hs-var">pendingNodeDef</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="TensorFlow.Build.html#PendingNode"><span class="hs-identifier hs-type">PendingNode</span></a></span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">_</span><span> </span><span id="local-6989586621679165479"><span class="annot"><span class="annottext">n :: NodeDef
|
|
</span><a href="#local-6989586621679165479"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NodeDef
|
|
</span><a href="#local-6989586621679165479"><span class="hs-identifier hs-var">n</span></a></span><span>
|
|
</span><span id="line-155"></span><span>
|
|
</span><span id="line-156"></span><span class="annot"><a href="TensorFlow.Build.html#initGraphState"><span class="hs-identifier hs-type">initGraphState</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span><span>
|
|
</span><span id="line-157"></span><span id="initGraphState"><span class="annot"><span class="annottext">initGraphState :: GraphState
|
|
</span><a href="TensorFlow.Build.html#initGraphState"><span class="hs-identifier hs-var hs-var">initGraphState</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
|
|
</span><span id="line-158"></span><span> </span><span class="annot"><span class="annottext">Map PendingNode NodeDef
|
|
-> Map NodeName NodeDef
|
|
-> [NodeDef]
|
|
-> Unique
|
|
-> Maybe Device
|
|
-> [Scope]
|
|
-> Set NodeName
|
|
-> [NodeName]
|
|
-> [Output]
|
|
-> GraphState
|
|
</span><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-var">GraphState</span></a></span><span> </span><span class="annot"><span class="annottext">Map PendingNode NodeDef
|
|
forall k a. Map k a
|
|
</span><span class="hs-identifier hs-var">Map.empty</span></span><span> </span><span class="annot"><span class="annottext">Map NodeName NodeDef
|
|
forall k a. Map k a
|
|
</span><span class="hs-identifier hs-var">Map.empty</span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -> Unique
|
|
</span><a href="TensorFlow.Build.html#Unique"><span class="hs-identifier hs-var">Unique</span></a></span><span> </span><span class="annot"><span class="hs-number">0</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Maybe Device
|
|
forall a. Maybe a
|
|
</span><span class="hs-identifier hs-var">Nothing</span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">Set NodeName
|
|
forall a. Set a
|
|
</span><span class="hs-identifier hs-var">Set.empty</span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
|
|
</span><span id="line-159"></span><span>
|
|
</span><span id="line-160"></span><span class="annot"><a href="TensorFlow.Build.html#renderedNodes"><span class="hs-identifier hs-type">renderedNodes</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Lens'</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Map.Map</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#PendingNode"><span class="hs-identifier hs-type">PendingNode</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">NodeDef</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-161"></span><span id="renderedNodes"><span class="annot"><span class="annottext">renderedNodes :: LensLike' f GraphState (Map PendingNode NodeDef)
|
|
</span><a href="TensorFlow.Build.html#renderedNodes"><span class="hs-identifier hs-var hs-var">renderedNodes</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GraphState -> Map PendingNode NodeDef)
|
|
-> (GraphState -> Map PendingNode NodeDef -> GraphState)
|
|
-> Lens
|
|
GraphState
|
|
GraphState
|
|
(Map PendingNode NodeDef)
|
|
(Map PendingNode NodeDef)
|
|
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
|
|
</span><span class="hs-identifier hs-var">lens</span></span><span> </span><span class="annot"><span class="annottext">GraphState -> Map PendingNode NodeDef
|
|
</span><a href="TensorFlow.Build.html#_renderedNodes"><span class="hs-identifier hs-var hs-var">_renderedNodes</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679165475"><span class="annot"><span class="annottext">g :: GraphState
|
|
</span><a href="#local-6989586621679165475"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621679165474"><span class="annot"><span class="annottext">x :: Map PendingNode NodeDef
|
|
</span><a href="#local-6989586621679165474"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">GraphState
|
|
</span><a href="#local-6989586621679165475"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">_renderedNodes :: Map PendingNode NodeDef
|
|
</span><a href="TensorFlow.Build.html#_renderedNodes"><span class="hs-identifier hs-var">_renderedNodes</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Map PendingNode NodeDef
|
|
</span><a href="#local-6989586621679165474"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-162"></span><span>
|
|
</span><span id="line-163"></span><span class="annot"><a href="TensorFlow.Build.html#renderedNodeDefs"><span class="hs-identifier hs-type">renderedNodeDefs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Lens'</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Map.Map</span></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-type">NodeName</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">NodeDef</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-164"></span><span id="renderedNodeDefs"><span class="annot"><span class="annottext">renderedNodeDefs :: LensLike' f GraphState (Map NodeName NodeDef)
|
|
</span><a href="TensorFlow.Build.html#renderedNodeDefs"><span class="hs-identifier hs-var hs-var">renderedNodeDefs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GraphState -> Map NodeName NodeDef)
|
|
-> (GraphState -> Map NodeName NodeDef -> GraphState)
|
|
-> Lens
|
|
GraphState GraphState (Map NodeName NodeDef) (Map NodeName NodeDef)
|
|
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
|
|
</span><span class="hs-identifier hs-var">lens</span></span><span> </span><span class="annot"><span class="annottext">GraphState -> Map NodeName NodeDef
|
|
</span><a href="TensorFlow.Build.html#_renderedNodeDefs"><span class="hs-identifier hs-var hs-var">_renderedNodeDefs</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679165473"><span class="annot"><span class="annottext">g :: GraphState
|
|
</span><a href="#local-6989586621679165473"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621679165472"><span class="annot"><span class="annottext">x :: Map NodeName NodeDef
|
|
</span><a href="#local-6989586621679165472"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">GraphState
|
|
</span><a href="#local-6989586621679165473"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">_renderedNodeDefs :: Map NodeName NodeDef
|
|
</span><a href="TensorFlow.Build.html#_renderedNodeDefs"><span class="hs-identifier hs-var">_renderedNodeDefs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Map NodeName NodeDef
|
|
</span><a href="#local-6989586621679165472"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-165"></span><span>
|
|
</span><span id="line-166"></span><span class="annot"><a href="TensorFlow.Build.html#nodeBuffer"><span class="hs-identifier hs-type">nodeBuffer</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Lens'</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="hs-identifier hs-type">NodeDef</span></span><span class="hs-special">]</span><span>
|
|
</span><span id="line-167"></span><span id="nodeBuffer"><span class="annot"><span class="annottext">nodeBuffer :: LensLike' f GraphState [NodeDef]
|
|
</span><a href="TensorFlow.Build.html#nodeBuffer"><span class="hs-identifier hs-var hs-var">nodeBuffer</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GraphState -> [NodeDef])
|
|
-> (GraphState -> [NodeDef] -> GraphState)
|
|
-> Lens GraphState GraphState [NodeDef] [NodeDef]
|
|
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
|
|
</span><span class="hs-identifier hs-var">lens</span></span><span> </span><span class="annot"><span class="annottext">GraphState -> [NodeDef]
|
|
</span><a href="TensorFlow.Build.html#_nodeBuffer"><span class="hs-identifier hs-var hs-var">_nodeBuffer</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679165470"><span class="annot"><span class="annottext">g :: GraphState
|
|
</span><a href="#local-6989586621679165470"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621679165469"><span class="annot"><span class="annottext">x :: [NodeDef]
|
|
</span><a href="#local-6989586621679165469"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">GraphState
|
|
</span><a href="#local-6989586621679165470"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">_nodeBuffer :: [NodeDef]
|
|
</span><a href="TensorFlow.Build.html#_nodeBuffer"><span class="hs-identifier hs-var">_nodeBuffer</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[NodeDef]
|
|
</span><a href="#local-6989586621679165469"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-168"></span><span>
|
|
</span><span id="line-169"></span><span class="annot"><a href="TensorFlow.Build.html#nextUnique"><span class="hs-identifier hs-type">nextUnique</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Lens'</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span>
|
|
</span><span id="line-170"></span><span id="nextUnique"><span class="annot"><span class="annottext">nextUnique :: LensLike' f GraphState Unique
|
|
</span><a href="TensorFlow.Build.html#nextUnique"><span class="hs-identifier hs-var hs-var">nextUnique</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GraphState -> Unique)
|
|
-> (GraphState -> Unique -> GraphState)
|
|
-> Lens GraphState GraphState Unique Unique
|
|
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
|
|
</span><span class="hs-identifier hs-var">lens</span></span><span> </span><span class="annot"><span class="annottext">GraphState -> Unique
|
|
</span><a href="TensorFlow.Build.html#_nextUnique"><span class="hs-identifier hs-var hs-var">_nextUnique</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679165467"><span class="annot"><span class="annottext">g :: GraphState
|
|
</span><a href="#local-6989586621679165467"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621679165466"><span class="annot"><span class="annottext">x :: Unique
|
|
</span><a href="#local-6989586621679165466"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">GraphState
|
|
</span><a href="#local-6989586621679165467"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">_nextUnique :: Unique
|
|
</span><a href="TensorFlow.Build.html#_nextUnique"><span class="hs-identifier hs-var">_nextUnique</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Unique
|
|
</span><a href="#local-6989586621679165466"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-171"></span><span>
|
|
</span><span id="line-172"></span><span class="annot"><a href="TensorFlow.Build.html#defaultDevice"><span class="hs-identifier hs-type">defaultDevice</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Lens'</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Maybe</span></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#Device"><span class="hs-identifier hs-type">Device</span></a></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-173"></span><span id="defaultDevice"><span class="annot"><span class="annottext">defaultDevice :: LensLike' f GraphState (Maybe Device)
|
|
</span><a href="TensorFlow.Build.html#defaultDevice"><span class="hs-identifier hs-var hs-var">defaultDevice</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GraphState -> Maybe Device)
|
|
-> (GraphState -> Maybe Device -> GraphState)
|
|
-> Lens GraphState GraphState (Maybe Device) (Maybe Device)
|
|
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
|
|
</span><span class="hs-identifier hs-var">lens</span></span><span> </span><span class="annot"><span class="annottext">GraphState -> Maybe Device
|
|
</span><a href="TensorFlow.Build.html#_defaultDevice"><span class="hs-identifier hs-var hs-var">_defaultDevice</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679165464"><span class="annot"><span class="annottext">g :: GraphState
|
|
</span><a href="#local-6989586621679165464"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621679165463"><span class="annot"><span class="annottext">x :: Maybe Device
|
|
</span><a href="#local-6989586621679165463"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">GraphState
|
|
</span><a href="#local-6989586621679165464"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">_defaultDevice :: Maybe Device
|
|
</span><a href="TensorFlow.Build.html#_defaultDevice"><span class="hs-identifier hs-var">_defaultDevice</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe Device
|
|
</span><a href="#local-6989586621679165463"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-174"></span><span>
|
|
</span><span id="line-175"></span><span class="annot"><a href="TensorFlow.Build.html#currentScope"><span class="hs-identifier hs-type">currentScope</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Lens'</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="TensorFlow.Build.html#Scope"><span class="hs-identifier hs-type">Scope</span></a></span><span class="hs-special">]</span><span>
|
|
</span><span id="line-176"></span><span id="currentScope"><span class="annot"><span class="annottext">currentScope :: LensLike' f GraphState [Scope]
|
|
</span><a href="TensorFlow.Build.html#currentScope"><span class="hs-identifier hs-var hs-var">currentScope</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GraphState -> [Scope])
|
|
-> (GraphState -> [Scope] -> GraphState)
|
|
-> Lens GraphState GraphState [Scope] [Scope]
|
|
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
|
|
</span><span class="hs-identifier hs-var">lens</span></span><span> </span><span class="annot"><span class="annottext">GraphState -> [Scope]
|
|
</span><a href="TensorFlow.Build.html#_currentScope"><span class="hs-identifier hs-var hs-var">_currentScope</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679165461"><span class="annot"><span class="annottext">g :: GraphState
|
|
</span><a href="#local-6989586621679165461"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621679165460"><span class="annot"><span class="annottext">x :: [Scope]
|
|
</span><a href="#local-6989586621679165460"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">GraphState
|
|
</span><a href="#local-6989586621679165461"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">_currentScope :: [Scope]
|
|
</span><a href="TensorFlow.Build.html#_currentScope"><span class="hs-identifier hs-var">_currentScope</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Scope]
|
|
</span><a href="#local-6989586621679165460"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-177"></span><span>
|
|
</span><span id="line-178"></span><span class="annot"><a href="TensorFlow.Build.html#defaultControlInputs"><span class="hs-identifier hs-type">defaultControlInputs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Lens'</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Set</span></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-type">NodeName</span></a></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-179"></span><span id="defaultControlInputs"><span class="annot"><span class="annottext">defaultControlInputs :: LensLike' f GraphState (Set NodeName)
|
|
</span><a href="TensorFlow.Build.html#defaultControlInputs"><span class="hs-identifier hs-var hs-var">defaultControlInputs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GraphState -> Set NodeName)
|
|
-> (GraphState -> Set NodeName -> GraphState)
|
|
-> Lens GraphState GraphState (Set NodeName) (Set NodeName)
|
|
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
|
|
</span><span class="hs-identifier hs-var">lens</span></span><span> </span><span class="annot"><span class="annottext">GraphState -> Set NodeName
|
|
</span><a href="TensorFlow.Build.html#_defaultControlInputs"><span class="hs-identifier hs-var hs-var">_defaultControlInputs</span></a></span><span>
|
|
</span><span id="line-180"></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679165458"><span class="annot"><span class="annottext">g :: GraphState
|
|
</span><a href="#local-6989586621679165458"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621679165457"><span class="annot"><span class="annottext">x :: Set NodeName
|
|
</span><a href="#local-6989586621679165457"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">GraphState
|
|
</span><a href="#local-6989586621679165458"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">_defaultControlInputs :: Set NodeName
|
|
</span><a href="TensorFlow.Build.html#_defaultControlInputs"><span class="hs-identifier hs-var">_defaultControlInputs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Set NodeName
|
|
</span><a href="#local-6989586621679165457"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-181"></span><span>
|
|
</span><span id="line-182"></span><span class="annot"><a href="TensorFlow.Build.html#initializationNodes"><span class="hs-identifier hs-type">initializationNodes</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Lens'</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-type">NodeName</span></a></span><span class="hs-special">]</span><span>
|
|
</span><span id="line-183"></span><span id="initializationNodes"><span class="annot"><span class="annottext">initializationNodes :: LensLike' f GraphState [NodeName]
|
|
</span><a href="TensorFlow.Build.html#initializationNodes"><span class="hs-identifier hs-var hs-var">initializationNodes</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GraphState -> [NodeName])
|
|
-> (GraphState -> [NodeName] -> GraphState)
|
|
-> Lens GraphState GraphState [NodeName] [NodeName]
|
|
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
|
|
</span><span class="hs-identifier hs-var">lens</span></span><span> </span><span class="annot"><span class="annottext">GraphState -> [NodeName]
|
|
</span><a href="TensorFlow.Build.html#_initializationNodes"><span class="hs-identifier hs-var hs-var">_initializationNodes</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679165455"><span class="annot"><span class="annottext">g :: GraphState
|
|
</span><a href="#local-6989586621679165455"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621679165454"><span class="annot"><span class="annottext">x :: [NodeName]
|
|
</span><a href="#local-6989586621679165454"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">GraphState
|
|
</span><a href="#local-6989586621679165455"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">_initializationNodes :: [NodeName]
|
|
</span><a href="TensorFlow.Build.html#_initializationNodes"><span class="hs-identifier hs-var">_initializationNodes</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[NodeName]
|
|
</span><a href="#local-6989586621679165454"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-184"></span><span>
|
|
</span><span id="line-185"></span><span class="annot"><a href="TensorFlow.Build.html#summaries"><span class="hs-identifier hs-type">summaries</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Lens'</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="TensorFlow.Output.html#Output"><span class="hs-identifier hs-type">Output</span></a></span><span class="hs-special">]</span><span>
|
|
</span><span id="line-186"></span><span id="summaries"><span class="annot"><span class="annottext">summaries :: LensLike' f GraphState [Output]
|
|
</span><a href="TensorFlow.Build.html#summaries"><span class="hs-identifier hs-var hs-var">summaries</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GraphState -> [Output])
|
|
-> (GraphState -> [Output] -> GraphState)
|
|
-> Lens GraphState GraphState [Output] [Output]
|
|
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
|
|
</span><span class="hs-identifier hs-var">lens</span></span><span> </span><span class="annot"><span class="annottext">GraphState -> [Output]
|
|
</span><a href="TensorFlow.Build.html#_summaries"><span class="hs-identifier hs-var hs-var">_summaries</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679165453"><span class="annot"><span class="annottext">g :: GraphState
|
|
</span><a href="#local-6989586621679165453"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span id="local-6989586621679165452"><span class="annot"><span class="annottext">x :: [Output]
|
|
</span><a href="#local-6989586621679165452"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">GraphState
|
|
</span><a href="#local-6989586621679165453"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">_summaries :: [Output]
|
|
</span><a href="TensorFlow.Build.html#_summaries"><span class="hs-identifier hs-var">_summaries</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Output]
|
|
</span><a href="#local-6989586621679165452"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
|
|
</span><span id="line-187"></span><span>
|
|
</span><span id="line-188"></span><span class="hs-comment">-- | An action for building nodes in a TensorFlow graph.</span><span>
|
|
</span><span id="line-189"></span><span class="hs-comment">-- Used to manage build state internally as part of the @Session@ monad.</span><span>
|
|
</span><span id="line-190"></span><span class="hs-keyword">newtype</span><span> </span><span id="BuildT"><span class="annot"><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier hs-var">BuildT</span></a></span></span><span> </span><span id="local-6989586621679165782"><span class="annot"><a href="#local-6989586621679165782"><span class="hs-identifier hs-type">m</span></a></span></span><span> </span><span id="local-6989586621679165781"><span class="annot"><a href="#local-6989586621679165781"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="BuildT"><span class="annot"><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier hs-var">BuildT</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">StateT</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165782"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165781"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-191"></span><span> </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679165447"><span id="local-6989586621679165449"><span class="annot"><span class="annottext">a -> BuildT m b -> BuildT m a
|
|
(a -> b) -> BuildT m a -> BuildT m b
|
|
(forall a b. (a -> b) -> BuildT m a -> BuildT m b)
|
|
-> (forall a b. a -> BuildT m b -> BuildT m a)
|
|
-> Functor (BuildT m)
|
|
forall a b. a -> BuildT m b -> BuildT m a
|
|
forall a b. (a -> b) -> BuildT m a -> BuildT m b
|
|
forall (m :: * -> *) a b.
|
|
Functor m =>
|
|
a -> BuildT m b -> BuildT m a
|
|
forall (m :: * -> *) a b.
|
|
Functor m =>
|
|
(a -> b) -> BuildT m a -> BuildT m b
|
|
forall (f :: * -> *).
|
|
(forall a b. (a -> b) -> f a -> f b)
|
|
-> (forall a b. a -> f b -> f a) -> Functor f
|
|
<$ :: a -> BuildT m b -> BuildT m a
|
|
$c<$ :: forall (m :: * -> *) a b.
|
|
Functor m =>
|
|
a -> BuildT m b -> BuildT m a
|
|
fmap :: (a -> b) -> BuildT m a -> BuildT m b
|
|
$cfmap :: forall (m :: * -> *) a b.
|
|
Functor m =>
|
|
(a -> b) -> BuildT m a -> BuildT m b
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Functor</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679165435"><span id="local-6989586621679165437"><span id="local-6989586621679165439"><span id="local-6989586621679165441"><span id="local-6989586621679165443"><span class="annot"><span class="annottext">Functor (BuildT m)
|
|
a -> BuildT m a
|
|
Functor (BuildT m) =>
|
|
(forall a. a -> BuildT m a)
|
|
-> (forall a b. BuildT m (a -> b) -> BuildT m a -> BuildT m b)
|
|
-> (forall a b c.
|
|
(a -> b -> c) -> BuildT m a -> BuildT m b -> BuildT m c)
|
|
-> (forall a b. BuildT m a -> BuildT m b -> BuildT m b)
|
|
-> (forall a b. BuildT m a -> BuildT m b -> BuildT m a)
|
|
-> Applicative (BuildT m)
|
|
BuildT m a -> BuildT m b -> BuildT m b
|
|
BuildT m a -> BuildT m b -> BuildT m a
|
|
BuildT m (a -> b) -> BuildT m a -> BuildT m b
|
|
(a -> b -> c) -> BuildT m a -> BuildT m b -> BuildT m c
|
|
forall a. a -> BuildT m a
|
|
forall a b. BuildT m a -> BuildT m b -> BuildT m a
|
|
forall a b. BuildT m a -> BuildT m b -> BuildT m b
|
|
forall a b. BuildT m (a -> b) -> BuildT m a -> BuildT m b
|
|
forall a b c.
|
|
(a -> b -> c) -> BuildT m a -> BuildT m b -> BuildT m c
|
|
forall (m :: * -> *). Monad m => Functor (BuildT m)
|
|
forall (m :: * -> *) a. Monad m => a -> BuildT m a
|
|
forall (m :: * -> *) a b.
|
|
Monad m =>
|
|
BuildT m a -> BuildT m b -> BuildT m a
|
|
forall (m :: * -> *) a b.
|
|
Monad m =>
|
|
BuildT m a -> BuildT m b -> BuildT m b
|
|
forall (m :: * -> *) a b.
|
|
Monad m =>
|
|
BuildT m (a -> b) -> BuildT m a -> BuildT m b
|
|
forall (m :: * -> *) a b c.
|
|
Monad m =>
|
|
(a -> b -> c) -> BuildT m a -> BuildT m b -> BuildT m c
|
|
forall (f :: * -> *).
|
|
Functor f =>
|
|
(forall a. a -> f a)
|
|
-> (forall a b. f (a -> b) -> f a -> f b)
|
|
-> (forall a b c. (a -> b -> c) -> f a -> f b -> f c)
|
|
-> (forall a b. f a -> f b -> f b)
|
|
-> (forall a b. f a -> f b -> f a)
|
|
-> Applicative f
|
|
<* :: BuildT m a -> BuildT m b -> BuildT m a
|
|
$c<* :: forall (m :: * -> *) a b.
|
|
Monad m =>
|
|
BuildT m a -> BuildT m b -> BuildT m a
|
|
*> :: BuildT m a -> BuildT m b -> BuildT m b
|
|
$c*> :: forall (m :: * -> *) a b.
|
|
Monad m =>
|
|
BuildT m a -> BuildT m b -> BuildT m b
|
|
liftA2 :: (a -> b -> c) -> BuildT m a -> BuildT m b -> BuildT m c
|
|
$cliftA2 :: forall (m :: * -> *) a b c.
|
|
Monad m =>
|
|
(a -> b -> c) -> BuildT m a -> BuildT m b -> BuildT m c
|
|
<*> :: BuildT m (a -> b) -> BuildT m a -> BuildT m b
|
|
$c<*> :: forall (m :: * -> *) a b.
|
|
Monad m =>
|
|
BuildT m (a -> b) -> BuildT m a -> BuildT m b
|
|
pure :: a -> BuildT m a
|
|
$cpure :: forall (m :: * -> *) a. Monad m => a -> BuildT m a
|
|
$cp1Applicative :: forall (m :: * -> *). Monad m => Functor (BuildT m)
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Applicative</span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679165427"><span id="local-6989586621679165429"><span id="local-6989586621679165431"><span class="annot"><span class="annottext">Applicative (BuildT m)
|
|
a -> BuildT m a
|
|
Applicative (BuildT m) =>
|
|
(forall a b. BuildT m a -> (a -> BuildT m b) -> BuildT m b)
|
|
-> (forall a b. BuildT m a -> BuildT m b -> BuildT m b)
|
|
-> (forall a. a -> BuildT m a)
|
|
-> Monad (BuildT m)
|
|
BuildT m a -> (a -> BuildT m b) -> BuildT m b
|
|
BuildT m a -> BuildT m b -> BuildT m b
|
|
forall a. a -> BuildT m a
|
|
forall a b. BuildT m a -> BuildT m b -> BuildT m b
|
|
forall a b. BuildT m a -> (a -> BuildT m b) -> BuildT m b
|
|
forall (m :: * -> *). Monad m => Applicative (BuildT m)
|
|
forall (m :: * -> *) a. Monad m => a -> BuildT m a
|
|
forall (m :: * -> *) a b.
|
|
Monad m =>
|
|
BuildT m a -> BuildT m b -> BuildT m b
|
|
forall (m :: * -> *) a b.
|
|
Monad m =>
|
|
BuildT m a -> (a -> BuildT m b) -> BuildT m b
|
|
forall (m :: * -> *).
|
|
Applicative m =>
|
|
(forall a b. m a -> (a -> m b) -> m b)
|
|
-> (forall a b. m a -> m b -> m b)
|
|
-> (forall a. a -> m a)
|
|
-> Monad m
|
|
return :: a -> BuildT m a
|
|
$creturn :: forall (m :: * -> *) a. Monad m => a -> BuildT m a
|
|
>> :: BuildT m a -> BuildT m b -> BuildT m b
|
|
$c>> :: forall (m :: * -> *) a b.
|
|
Monad m =>
|
|
BuildT m a -> BuildT m b -> BuildT m b
|
|
>>= :: BuildT m a -> (a -> BuildT m b) -> BuildT m b
|
|
$c>>= :: forall (m :: * -> *) a b.
|
|
Monad m =>
|
|
BuildT m a -> (a -> BuildT m b) -> BuildT m b
|
|
$cp1Monad :: forall (m :: * -> *). Monad m => Applicative (BuildT m)
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Monad</span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679165423"><span class="annot"><span class="annottext">Monad (BuildT m)
|
|
Monad (BuildT m) =>
|
|
(forall a. IO a -> BuildT m a) -> MonadIO (BuildT m)
|
|
IO a -> BuildT m a
|
|
forall a. IO a -> BuildT m a
|
|
forall (m :: * -> *).
|
|
Monad m =>
|
|
(forall a. IO a -> m a) -> MonadIO m
|
|
forall (m :: * -> *). MonadIO m => Monad (BuildT m)
|
|
forall (m :: * -> *) a. MonadIO m => IO a -> BuildT m a
|
|
liftIO :: IO a -> BuildT m a
|
|
$cliftIO :: forall (m :: * -> *) a. MonadIO m => IO a -> BuildT m a
|
|
$cp1MonadIO :: forall (m :: * -> *). MonadIO m => Monad (BuildT m)
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var">MonadIO</span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679165420"><span class="annot"><span class="annottext">m a -> BuildT m a
|
|
(forall (m :: * -> *) a. Monad m => m a -> BuildT m a)
|
|
-> MonadTrans BuildT
|
|
forall (m :: * -> *) a. Monad m => m a -> BuildT m a
|
|
forall (t :: (* -> *) -> * -> *).
|
|
(forall (m :: * -> *) a. Monad m => m a -> t m a) -> MonadTrans t
|
|
lift :: m a -> BuildT m a
|
|
$clift :: forall (m :: * -> *) a. Monad m => m a -> BuildT m a
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var">MonadTrans</span></span></span><span class="hs-special">,</span><span>
|
|
</span><span id="line-192"></span><span> </span><span id="local-6989586621679165412"><span id="local-6989586621679165414"><span id="local-6989586621679165416"><span class="annot"><span class="hs-identifier hs-type">MonadState</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679165408"><span class="annot"><span class="annottext">Monad (BuildT m)
|
|
e -> BuildT m a
|
|
Monad (BuildT m) =>
|
|
(forall e a. Exception e => e -> BuildT m a)
|
|
-> MonadThrow (BuildT m)
|
|
forall e a. Exception e => e -> BuildT m a
|
|
forall (m :: * -> *).
|
|
Monad m =>
|
|
(forall e a. Exception e => e -> m a) -> MonadThrow m
|
|
forall (m :: * -> *). MonadThrow m => Monad (BuildT m)
|
|
forall (m :: * -> *) e a.
|
|
(MonadThrow m, Exception e) =>
|
|
e -> BuildT m a
|
|
throwM :: e -> BuildT m a
|
|
$cthrowM :: forall (m :: * -> *) e a.
|
|
(MonadThrow m, Exception e) =>
|
|
e -> BuildT m a
|
|
$cp1MonadThrow :: forall (m :: * -> *). MonadThrow m => Monad (BuildT m)
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var">MonadThrow</span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679165404"><span class="annot"><span class="annottext">MonadThrow (BuildT m)
|
|
MonadThrow (BuildT m) =>
|
|
(forall e a.
|
|
Exception e =>
|
|
BuildT m a -> (e -> BuildT m a) -> BuildT m a)
|
|
-> MonadCatch (BuildT m)
|
|
BuildT m a -> (e -> BuildT m a) -> BuildT m a
|
|
forall e a.
|
|
Exception e =>
|
|
BuildT m a -> (e -> BuildT m a) -> BuildT m a
|
|
forall (m :: * -> *). MonadCatch m => MonadThrow (BuildT m)
|
|
forall (m :: * -> *) e a.
|
|
(MonadCatch m, Exception e) =>
|
|
BuildT m a -> (e -> BuildT m a) -> BuildT m a
|
|
forall (m :: * -> *).
|
|
MonadThrow m =>
|
|
(forall e a. Exception e => m a -> (e -> m a) -> m a)
|
|
-> MonadCatch m
|
|
catch :: BuildT m a -> (e -> BuildT m a) -> BuildT m a
|
|
$ccatch :: forall (m :: * -> *) e a.
|
|
(MonadCatch m, Exception e) =>
|
|
BuildT m a -> (e -> BuildT m a) -> BuildT m a
|
|
$cp1MonadCatch :: forall (m :: * -> *). MonadCatch m => MonadThrow (BuildT m)
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var">MonadCatch</span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679165396"><span id="local-6989586621679165398"><span id="local-6989586621679165400"><span class="annot"><span class="annottext">MonadCatch (BuildT m)
|
|
MonadCatch (BuildT m) =>
|
|
(forall b.
|
|
((forall a. BuildT m a -> BuildT m a) -> BuildT m b) -> BuildT m b)
|
|
-> (forall b.
|
|
((forall a. BuildT m a -> BuildT m a) -> BuildT m b) -> BuildT m b)
|
|
-> (forall a b c.
|
|
BuildT m a
|
|
-> (a -> ExitCase b -> BuildT m c)
|
|
-> (a -> BuildT m b)
|
|
-> BuildT m (b, c))
|
|
-> MonadMask (BuildT m)
|
|
BuildT m a
|
|
-> (a -> ExitCase b -> BuildT m c)
|
|
-> (a -> BuildT m b)
|
|
-> BuildT m (b, c)
|
|
((forall a. BuildT m a -> BuildT m a) -> BuildT m b) -> BuildT m b
|
|
((forall a. BuildT m a -> BuildT m a) -> BuildT m b) -> BuildT m b
|
|
forall b.
|
|
((forall a. BuildT m a -> BuildT m a) -> BuildT m b) -> BuildT m b
|
|
forall a b c.
|
|
BuildT m a
|
|
-> (a -> ExitCase b -> BuildT m c)
|
|
-> (a -> BuildT m b)
|
|
-> BuildT m (b, c)
|
|
forall (m :: * -> *).
|
|
MonadCatch m =>
|
|
(forall b. ((forall a. m a -> m a) -> m b) -> m b)
|
|
-> (forall b. ((forall a. m a -> m a) -> m b) -> m b)
|
|
-> (forall a b c.
|
|
m a -> (a -> ExitCase b -> m c) -> (a -> m b) -> m (b, c))
|
|
-> MonadMask m
|
|
forall (m :: * -> *). MonadMask m => MonadCatch (BuildT m)
|
|
forall (m :: * -> *) b.
|
|
MonadMask m =>
|
|
((forall a. BuildT m a -> BuildT m a) -> BuildT m b) -> BuildT m b
|
|
forall (m :: * -> *) a b c.
|
|
MonadMask m =>
|
|
BuildT m a
|
|
-> (a -> ExitCase b -> BuildT m c)
|
|
-> (a -> BuildT m b)
|
|
-> BuildT m (b, c)
|
|
generalBracket :: BuildT m a
|
|
-> (a -> ExitCase b -> BuildT m c)
|
|
-> (a -> BuildT m b)
|
|
-> BuildT m (b, c)
|
|
$cgeneralBracket :: forall (m :: * -> *) a b c.
|
|
MonadMask m =>
|
|
BuildT m a
|
|
-> (a -> ExitCase b -> BuildT m c)
|
|
-> (a -> BuildT m b)
|
|
-> BuildT m (b, c)
|
|
uninterruptibleMask :: ((forall a. BuildT m a -> BuildT m a) -> BuildT m b) -> BuildT m b
|
|
$cuninterruptibleMask :: forall (m :: * -> *) b.
|
|
MonadMask m =>
|
|
((forall a. BuildT m a -> BuildT m a) -> BuildT m b) -> BuildT m b
|
|
mask :: ((forall a. BuildT m a -> BuildT m a) -> BuildT m b) -> BuildT m b
|
|
$cmask :: forall (m :: * -> *) b.
|
|
MonadMask m =>
|
|
((forall a. BuildT m a -> BuildT m a) -> BuildT m b) -> BuildT m b
|
|
$cp1MonadMask :: forall (m :: * -> *). MonadMask m => MonadCatch (BuildT m)
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">MonadMask</span></span></span></span></span><span class="hs-special">,</span><span>
|
|
</span><span id="line-193"></span><span> </span><span id="local-6989586621679165392"><span class="annot"><span class="annottext">Monad (BuildT m)
|
|
Monad (BuildT m) =>
|
|
(forall a. (a -> BuildT m a) -> BuildT m a) -> MonadFix (BuildT m)
|
|
(a -> BuildT m a) -> BuildT m a
|
|
forall a. (a -> BuildT m a) -> BuildT m a
|
|
forall (m :: * -> *).
|
|
Monad m =>
|
|
(forall a. (a -> m a) -> m a) -> MonadFix m
|
|
forall (m :: * -> *). MonadFix m => Monad (BuildT m)
|
|
forall (m :: * -> *) a.
|
|
MonadFix m =>
|
|
(a -> BuildT m a) -> BuildT m a
|
|
mfix :: (a -> BuildT m a) -> BuildT m a
|
|
$cmfix :: forall (m :: * -> *) a.
|
|
MonadFix m =>
|
|
(a -> BuildT m a) -> BuildT m a
|
|
$cp1MonadFix :: forall (m :: * -> *). MonadFix m => Monad (BuildT m)
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var">MonadFix</span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679165388"><span class="annot"><span class="annottext">Monad (BuildT m)
|
|
Monad (BuildT m) =>
|
|
(forall a. String -> BuildT m a) -> MonadFail (BuildT m)
|
|
String -> BuildT m a
|
|
forall a. String -> BuildT m a
|
|
forall (m :: * -> *).
|
|
Monad m =>
|
|
(forall a. String -> m a) -> MonadFail m
|
|
forall (m :: * -> *). MonadFail m => Monad (BuildT m)
|
|
forall (m :: * -> *) a. MonadFail m => String -> BuildT m a
|
|
fail :: String -> BuildT m a
|
|
$cfail :: forall (m :: * -> *) a. MonadFail m => String -> BuildT m a
|
|
$cp1MonadFail :: forall (m :: * -> *). MonadFail m => Monad (BuildT m)
|
|
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var">MonadFail</span></span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-194"></span><span>
|
|
</span><span id="line-195"></span><span class="hs-comment">-- | An action for building nodes in a TensorFlow graph.</span><span>
|
|
</span><span id="line-196"></span><span class="hs-keyword">type</span><span> </span><span id="Build"><span class="annot"><a href="TensorFlow.Build.html#Build"><span class="hs-identifier hs-var">Build</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier hs-type">BuildT</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Identity</span></span><span>
|
|
</span><span id="line-197"></span><span>
|
|
</span><span id="line-198"></span><span class="hs-comment">-- | This is Control.Monad.Morph.hoist sans the dependency.</span><span>
|
|
</span><span id="line-199"></span><span id="local-6989586621679165753"><span id="local-6989586621679165754"><span id="local-6989586621679165755"><span class="annot"><a href="TensorFlow.Build.html#hoistBuildT"><span class="hs-identifier hs-type">hoistBuildT</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621679165786"><span class="annot"><a href="#local-6989586621679165786"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="#local-6989586621679165755"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165786"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165754"><span class="hs-identifier hs-type">n</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165786"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier hs-type">BuildT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165755"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165753"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier hs-type">BuildT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165754"><span class="hs-identifier hs-type">n</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165753"><span class="hs-identifier hs-type">b</span></a></span></span></span></span><span>
|
|
</span><span id="line-200"></span><span id="hoistBuildT"><span class="annot"><span class="annottext">hoistBuildT :: (forall a. m a -> n a) -> BuildT m b -> BuildT n b
|
|
</span><a href="TensorFlow.Build.html#hoistBuildT"><span class="hs-identifier hs-var hs-var">hoistBuildT</span></a></span></span><span> </span><span id="local-6989586621679165386"><span class="annot"><span class="annottext">f :: forall a. m a -> n a
|
|
</span><a href="#local-6989586621679165386"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier hs-type">BuildT</span></a></span><span> </span><span id="local-6989586621679165385"><span class="annot"><span class="annottext">m :: StateT GraphState m b
|
|
</span><a href="#local-6989586621679165385"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">StateT GraphState n b -> BuildT n b
|
|
forall (m :: * -> *) a. StateT GraphState m a -> BuildT m a
|
|
</span><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier hs-var">BuildT</span></a></span><span> </span><span class="annot"><span class="annottext">(StateT GraphState n b -> BuildT n b)
|
|
-> StateT GraphState n b -> BuildT n b
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">(m (b, GraphState) -> n (b, GraphState))
|
|
-> StateT GraphState m b -> StateT GraphState n b
|
|
forall (m :: * -> *) a s (n :: * -> *) b.
|
|
(m (a, s) -> n (b, s)) -> StateT s m a -> StateT s n b
|
|
</span><span class="hs-identifier hs-var">mapStateT</span></span><span> </span><span class="annot"><span class="annottext">m (b, GraphState) -> n (b, GraphState)
|
|
forall a. m a -> n a
|
|
</span><a href="#local-6989586621679165386"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">StateT GraphState m b
|
|
</span><a href="#local-6989586621679165385"><span class="hs-identifier hs-var">m</span></a></span><span>
|
|
</span><span id="line-201"></span><span>
|
|
</span><span id="line-202"></span><span id="local-6989586621679165706"><span id="local-6989586621679165707"><span class="annot"><a href="TensorFlow.Build.html#runBuildT"><span class="hs-identifier hs-type">runBuildT</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier hs-type">BuildT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165707"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165706"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165707"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679165706"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span><span class="hs-special">)</span></span></span><span>
|
|
</span><span id="line-203"></span><span id="runBuildT"><span class="annot"><span class="annottext">runBuildT :: BuildT m a -> m (a, GraphState)
|
|
</span><a href="TensorFlow.Build.html#runBuildT"><span class="hs-identifier hs-var hs-var">runBuildT</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier hs-type">BuildT</span></a></span><span> </span><span id="local-6989586621679165384"><span class="annot"><span class="annottext">f :: StateT GraphState m a
|
|
</span><a href="#local-6989586621679165384"><span class="hs-identifier hs-var">f</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">StateT GraphState m a -> GraphState -> m (a, GraphState)
|
|
forall s (m :: * -> *) a. StateT s m a -> s -> m (a, s)
|
|
</span><span class="hs-identifier hs-var hs-var">runStateT</span></span><span> </span><span class="annot"><span class="annottext">StateT GraphState m a
|
|
</span><a href="#local-6989586621679165384"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">GraphState
|
|
</span><a href="TensorFlow.Build.html#initGraphState"><span class="hs-identifier hs-var">initGraphState</span></a></span><span>
|
|
</span><span id="line-204"></span><span>
|
|
</span><span id="line-205"></span><span id="local-6989586621679165381"><span id="local-6989586621679165382"><span class="annot"><a href="TensorFlow.Build.html#evalBuildT"><span class="hs-identifier hs-type">evalBuildT</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Monad</span></span><span> </span><span class="annot"><a href="#local-6989586621679165382"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier hs-type">BuildT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165382"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165381"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165382"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165381"><span class="hs-identifier hs-type">a</span></a></span></span></span><span>
|
|
</span><span id="line-206"></span><span id="evalBuildT"><span class="annot"><span class="annottext">evalBuildT :: BuildT m a -> m a
|
|
</span><a href="TensorFlow.Build.html#evalBuildT"><span class="hs-identifier hs-var hs-var">evalBuildT</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier hs-type">BuildT</span></a></span><span> </span><span id="local-6989586621679165380"><span class="annot"><span class="annottext">f :: StateT GraphState m a
|
|
</span><a href="#local-6989586621679165380"><span class="hs-identifier hs-var">f</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">StateT GraphState m a -> GraphState -> m a
|
|
forall (m :: * -> *) s a. Monad m => StateT s m a -> s -> m a
|
|
</span><span class="hs-identifier hs-var">evalStateT</span></span><span> </span><span class="annot"><span class="annottext">StateT GraphState m a
|
|
</span><a href="#local-6989586621679165380"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">GraphState
|
|
</span><a href="TensorFlow.Build.html#initGraphState"><span class="hs-identifier hs-var">initGraphState</span></a></span><span>
|
|
</span><span id="line-207"></span><span>
|
|
</span><span id="line-208"></span><span class="hs-comment">-- | Lift a 'Build' action into a monad, including any explicit op renderings.</span><span>
|
|
</span><span id="line-209"></span><span class="hs-keyword">class</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Monad</span></span><span> </span><span class="annot"><a href="#local-6989586621679165758"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=></span><span> </span><span id="MonadBuild"><span class="annot"><a href="TensorFlow.Build.html#MonadBuild"><span class="hs-identifier hs-var">MonadBuild</span></a></span></span><span> </span><span id="local-6989586621679165758"><span class="annot"><a href="#local-6989586621679165758"><span class="hs-identifier hs-type">m</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
|
|
</span><span id="line-210"></span><span> </span><span id="local-6989586621679165761"><span id="build"><span class="annot"><a href="TensorFlow.Build.html#build"><span class="hs-identifier hs-type">build</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#Build"><span class="hs-identifier hs-type">Build</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165761"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165758"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165761"><span class="hs-identifier hs-type">a</span></a></span></span><span>
|
|
</span><span id="line-211"></span><span>
|
|
</span><span id="line-212"></span><span id="local-6989586621679165378"><span class="hs-keyword">instance</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Monad</span></span><span> </span><span class="annot"><a href="#local-6989586621679165378"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#MonadBuild"><span class="hs-identifier hs-type">MonadBuild</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier hs-type">BuildT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165378"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
|
|
</span><span id="line-213"></span><span> </span><span id="local-6989586621679165374"><span class="annot"><span class="annottext">build :: Build a -> BuildT m a
|
|
</span><a href="#local-6989586621679165374"><span class="hs-identifier hs-var hs-var hs-var hs-var">build</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(forall a. Identity a -> m a) -> Build a -> BuildT m a
|
|
forall (m :: * -> *) (n :: * -> *) b.
|
|
(forall a. m a -> n a) -> BuildT m b -> BuildT n b
|
|
</span><a href="TensorFlow.Build.html#hoistBuildT"><span class="hs-identifier hs-var">hoistBuildT</span></a></span><span> </span><span class="annot"><span class="annottext">((forall a. Identity a -> m a) -> Build a -> BuildT m a)
|
|
-> (forall a. Identity a -> m a) -> Build a -> BuildT m a
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">a -> m a
|
|
forall (m :: * -> *) a. Monad m => a -> m a
|
|
</span><span class="hs-identifier hs-var">return</span></span><span> </span><span class="annot"><span class="annottext">(a -> m a) -> (Identity a -> a) -> Identity a -> m a
|
|
forall b c a. (b -> c) -> (a -> b) -> a -> c
|
|
</span><span class="hs-operator hs-var">.</span></span><span> </span><span class="annot"><span class="annottext">Identity a -> a
|
|
forall a. Identity a -> a
|
|
</span><span class="hs-identifier hs-var hs-var">runIdentity</span></span></span><span>
|
|
</span><span id="line-214"></span><span>
|
|
</span><span id="line-215"></span><span class="hs-comment">-- | Get all the NodeDefs that have accumulated so far, and clear that buffer.</span><span>
|
|
</span><span id="line-216"></span><span id="local-6989586621679165372"><span class="annot"><a href="TensorFlow.Build.html#flushNodeBuffer"><span class="hs-identifier hs-type">flushNodeBuffer</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#MonadBuild"><span class="hs-identifier hs-type">MonadBuild</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165372"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=></span><span> </span><span class="annot"><a href="#local-6989586621679165372"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="hs-identifier hs-type">NodeDef</span></span><span class="hs-special">]</span></span><span>
|
|
</span><span id="line-217"></span><span id="flushNodeBuffer"><span class="annot"><span class="annottext">flushNodeBuffer :: m [NodeDef]
|
|
</span><a href="TensorFlow.Build.html#flushNodeBuffer"><span class="hs-identifier hs-var hs-var">flushNodeBuffer</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Build [NodeDef] -> m [NodeDef]
|
|
forall (m :: * -> *) a. MonadBuild m => Build a -> m a
|
|
</span><a href="TensorFlow.Build.html#build"><span class="hs-identifier hs-var">build</span></a></span><span> </span><span class="annot"><span class="annottext">(Build [NodeDef] -> m [NodeDef]) -> Build [NodeDef] -> m [NodeDef]
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="hs-keyword">do</span><span>
|
|
</span><span id="line-218"></span><span> </span><span id="local-6989586621679165371"><span class="annot"><span class="annottext">[NodeDef]
|
|
</span><a href="#local-6989586621679165371"><span class="hs-identifier hs-var">ns</span></a></span></span><span> </span><span class="hs-glyph"><-</span><span> </span><span class="annot"><span class="annottext">FoldLike [NodeDef] GraphState GraphState [NodeDef] [NodeDef]
|
|
-> Build [NodeDef]
|
|
forall s (m :: * -> *) a t b.
|
|
MonadState s m =>
|
|
FoldLike a s t a b -> m a
|
|
</span><span class="hs-identifier hs-var">use</span></span><span> </span><span class="annot"><span class="annottext">FoldLike [NodeDef] GraphState GraphState [NodeDef] [NodeDef]
|
|
Lens GraphState GraphState [NodeDef] [NodeDef]
|
|
</span><a href="TensorFlow.Build.html#nodeBuffer"><span class="hs-identifier hs-var">nodeBuffer</span></a></span><span>
|
|
</span><span id="line-219"></span><span> </span><span class="annot"><span class="annottext">Lens GraphState GraphState [NodeDef] [NodeDef]
|
|
forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState [NodeDef]
|
|
</span><a href="TensorFlow.Build.html#nodeBuffer"><span class="hs-identifier hs-var">nodeBuffer</span></a></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState [NodeDef])
|
|
-> [NodeDef] -> BuildT Identity ()
|
|
forall s (m :: * -> *) a b.
|
|
MonadState s m =>
|
|
Setter s s a b -> b -> m ()
|
|
</span><span class="hs-operator hs-var">.=</span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
|
|
</span><span id="line-220"></span><span> </span><span class="annot"><span class="annottext">[NodeDef] -> Build [NodeDef]
|
|
forall (m :: * -> *) a. Monad m => a -> m a
|
|
</span><span class="hs-identifier hs-var">return</span></span><span> </span><span class="annot"><span class="annottext">[NodeDef]
|
|
</span><a href="#local-6989586621679165371"><span class="hs-identifier hs-var">ns</span></a></span><span>
|
|
</span><span id="line-221"></span><span>
|
|
</span><span id="line-222"></span><span class="hs-comment">-- | Get all the initializers that have accumulated so far, and clear</span><span>
|
|
</span><span id="line-223"></span><span class="hs-comment">-- that buffer.</span><span>
|
|
</span><span id="line-224"></span><span id="local-6989586621679165370"><span class="annot"><a href="TensorFlow.Build.html#flushInitializers"><span class="hs-identifier hs-type">flushInitializers</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Monad</span></span><span> </span><span class="annot"><a href="#local-6989586621679165370"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#BuildT"><span class="hs-identifier hs-type">BuildT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165370"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-type">NodeName</span></a></span><span class="hs-special">]</span></span><span>
|
|
</span><span id="line-225"></span><span id="flushInitializers"><span class="annot"><span class="annottext">flushInitializers :: BuildT m [NodeName]
|
|
</span><a href="TensorFlow.Build.html#flushInitializers"><span class="hs-identifier hs-var hs-var">flushInitializers</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
|
|
</span><span id="line-226"></span><span> </span><span id="local-6989586621679165369"><span class="annot"><span class="annottext">[NodeName]
|
|
</span><a href="#local-6989586621679165369"><span class="hs-identifier hs-var">ns</span></a></span></span><span> </span><span class="hs-glyph"><-</span><span> </span><span class="annot"><span class="annottext">FoldLike [NodeName] GraphState GraphState [NodeName] [NodeName]
|
|
-> BuildT m [NodeName]
|
|
forall s (m :: * -> *) a t b.
|
|
MonadState s m =>
|
|
FoldLike a s t a b -> m a
|
|
</span><span class="hs-identifier hs-var">use</span></span><span> </span><span class="annot"><span class="annottext">FoldLike [NodeName] GraphState GraphState [NodeName] [NodeName]
|
|
Lens GraphState GraphState [NodeName] [NodeName]
|
|
</span><a href="TensorFlow.Build.html#initializationNodes"><span class="hs-identifier hs-var">initializationNodes</span></a></span><span>
|
|
</span><span id="line-227"></span><span> </span><span class="annot"><span class="annottext">Lens GraphState GraphState [NodeName] [NodeName]
|
|
forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState [NodeName]
|
|
</span><a href="TensorFlow.Build.html#initializationNodes"><span class="hs-identifier hs-var">initializationNodes</span></a></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState [NodeName])
|
|
-> [NodeName] -> BuildT m ()
|
|
forall s (m :: * -> *) a b.
|
|
MonadState s m =>
|
|
Setter s s a b -> b -> m ()
|
|
</span><span class="hs-operator hs-var">.=</span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
|
|
</span><span id="line-228"></span><span> </span><span class="annot"><span class="annottext">[NodeName] -> BuildT m [NodeName]
|
|
forall (m :: * -> *) a. Monad m => a -> m a
|
|
</span><span class="hs-identifier hs-var">return</span></span><span> </span><span class="annot"><span class="annottext">[NodeName]
|
|
</span><a href="#local-6989586621679165369"><span class="hs-identifier hs-var">ns</span></a></span><span>
|
|
</span><span id="line-229"></span><span>
|
|
</span><span id="line-230"></span><span class="hs-comment">-- | Registers the given node to be executed before the next</span><span>
|
|
</span><span id="line-231"></span><span class="hs-comment">-- 'TensorFlow.Session.run'.</span><span>
|
|
</span><span id="line-232"></span><span id="local-6989586621679165368"><span class="annot"><a href="TensorFlow.Build.html#addInitializer"><span class="hs-identifier hs-type">addInitializer</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#MonadBuild"><span class="hs-identifier hs-type">MonadBuild</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165368"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#ControlNode"><span class="hs-identifier hs-type">ControlNode</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165368"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span></span><span>
|
|
</span><span id="line-233"></span><span id="addInitializer"><span class="annot"><span class="annottext">addInitializer :: ControlNode -> m ()
|
|
</span><a href="TensorFlow.Build.html#addInitializer"><span class="hs-identifier hs-var hs-var">addInitializer</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="TensorFlow.Output.html#ControlNode"><span class="hs-identifier hs-type">ControlNode</span></a></span><span> </span><span id="local-6989586621679165366"><span class="annot"><span class="annottext">i :: NodeName
|
|
</span><a href="#local-6989586621679165366"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BuildT Identity () -> m ()
|
|
forall (m :: * -> *) a. MonadBuild m => Build a -> m a
|
|
</span><a href="TensorFlow.Build.html#build"><span class="hs-identifier hs-var">build</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildT Identity () -> m ()) -> BuildT Identity () -> m ()
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">Lens GraphState GraphState [NodeName] [NodeName]
|
|
forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState [NodeName]
|
|
</span><a href="TensorFlow.Build.html#initializationNodes"><span class="hs-identifier hs-var">initializationNodes</span></a></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState [NodeName])
|
|
-> ([NodeName] -> [NodeName]) -> BuildT Identity ()
|
|
forall s (m :: * -> *) a b.
|
|
MonadState s m =>
|
|
Setter s s a b -> (a -> b) -> m ()
|
|
</span><span class="hs-operator hs-var">%=</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">NodeName
|
|
</span><a href="#local-6989586621679165366"><span class="hs-identifier hs-var">i</span></a></span><span class="annot"><span class="annottext">NodeName -> [NodeName] -> [NodeName]
|
|
forall a. a -> [a] -> [a]
|
|
</span><span class="hs-glyph hs-var">:</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-234"></span><span>
|
|
</span><span id="line-235"></span><span class="hs-comment">-- | Produce a GraphDef proto representation of the nodes that are rendered in</span><span>
|
|
</span><span id="line-236"></span><span class="hs-comment">-- the given 'Build' action.</span><span>
|
|
</span><span id="line-237"></span><span id="local-6989586621679165365"><span class="annot"><a href="TensorFlow.Build.html#asGraphDef"><span class="hs-identifier hs-type">asGraphDef</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#Build"><span class="hs-identifier hs-type">Build</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165365"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="hs-identifier hs-type">GraphDef</span></span></span><span>
|
|
</span><span id="line-238"></span><span id="asGraphDef"><span class="annot"><span class="annottext">asGraphDef :: Build a -> GraphDef
|
|
</span><a href="TensorFlow.Build.html#asGraphDef"><span class="hs-identifier hs-var hs-var">asGraphDef</span></a></span></span><span> </span><span id="local-6989586621679165364"><span class="annot"><span class="annottext">b :: Build a
|
|
</span><a href="#local-6989586621679165364"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GraphDef
|
|
forall msg. Message msg => msg
|
|
</span><span class="hs-identifier hs-var">defMessage</span></span><span> </span><span class="annot"><span class="annottext">GraphDef -> (GraphDef -> GraphDef) -> GraphDef
|
|
forall s t. s -> (s -> t) -> t
|
|
</span><span class="hs-operator hs-var">&</span></span><span> </span><span class="annot"><span class="annottext">forall (f :: * -> *). Identical f => LensLike' f GraphDef [NodeDef]
|
|
forall (f :: * -> *) s a.
|
|
(Functor f, HasField s "node" a) =>
|
|
LensLike' f s a
|
|
</span><span class="hs-identifier hs-var">node</span></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphDef [NodeDef])
|
|
-> [NodeDef] -> GraphDef -> GraphDef
|
|
forall s t a b. Setter s t a b -> b -> s -> t
|
|
</span><span class="hs-operator hs-var">.~</span></span><span> </span><span class="annot"><span class="annottext">GraphState
|
|
</span><a href="#local-6989586621679165363"><span class="hs-identifier hs-var">gs</span></a></span><span> </span><span class="annot"><span class="annottext">GraphState
|
|
-> FoldLike [NodeDef] GraphState GraphState [NodeDef] [NodeDef]
|
|
-> [NodeDef]
|
|
forall s a t b. s -> FoldLike a s t a b -> a
|
|
</span><span class="hs-operator hs-var">^.</span></span><span> </span><span class="annot"><span class="annottext">FoldLike [NodeDef] GraphState GraphState [NodeDef] [NodeDef]
|
|
Lens GraphState GraphState [NodeDef] [NodeDef]
|
|
</span><a href="TensorFlow.Build.html#nodeBuffer"><span class="hs-identifier hs-var">nodeBuffer</span></a></span><span>
|
|
</span><span id="line-239"></span><span> </span><span class="hs-keyword">where</span><span>
|
|
</span><span id="line-240"></span><span> </span><span id="local-6989586621679165363"><span class="annot"><span class="annottext">gs :: GraphState
|
|
</span><a href="#local-6989586621679165363"><span class="hs-identifier hs-var hs-var">gs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(a, GraphState) -> GraphState
|
|
forall a b. (a, b) -> b
|
|
</span><span class="hs-identifier hs-var">snd</span></span><span> </span><span class="annot"><span class="annottext">((a, GraphState) -> GraphState) -> (a, GraphState) -> GraphState
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">Identity (a, GraphState) -> (a, GraphState)
|
|
forall a. Identity a -> a
|
|
</span><span class="hs-identifier hs-var hs-var">runIdentity</span></span><span> </span><span class="annot"><span class="annottext">(Identity (a, GraphState) -> (a, GraphState))
|
|
-> Identity (a, GraphState) -> (a, GraphState)
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">Build a -> Identity (a, GraphState)
|
|
forall (m :: * -> *) a. BuildT m a -> m (a, GraphState)
|
|
</span><a href="TensorFlow.Build.html#runBuildT"><span class="hs-identifier hs-var">runBuildT</span></a></span><span> </span><span class="annot"><span class="annottext">Build a
|
|
</span><a href="#local-6989586621679165364"><span class="hs-identifier hs-var">b</span></a></span><span>
|
|
</span><span id="line-241"></span><span>
|
|
</span><span id="line-242"></span><span class="hs-comment">-- TODO: check against existing nodes for conflicts?</span><span>
|
|
</span><span id="line-243"></span><span id="local-6989586621679165362"><span class="annot"><a href="TensorFlow.Build.html#addGraphDef"><span class="hs-identifier hs-type">addGraphDef</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#MonadBuild"><span class="hs-identifier hs-type">MonadBuild</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165362"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=></span><span> </span><span class="annot"><span class="hs-identifier hs-type">GraphDef</span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165362"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span></span><span>
|
|
</span><span id="line-244"></span><span id="addGraphDef"><span class="annot"><span class="annottext">addGraphDef :: GraphDef -> m ()
|
|
</span><a href="TensorFlow.Build.html#addGraphDef"><span class="hs-identifier hs-var hs-var">addGraphDef</span></a></span></span><span> </span><span id="local-6989586621679165361"><span class="annot"><span class="annottext">g :: GraphDef
|
|
</span><a href="#local-6989586621679165361"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BuildT Identity () -> m ()
|
|
forall (m :: * -> *) a. MonadBuild m => Build a -> m a
|
|
</span><a href="TensorFlow.Build.html#build"><span class="hs-identifier hs-var">build</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildT Identity () -> m ()) -> BuildT Identity () -> m ()
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">Lens GraphState GraphState [NodeDef] [NodeDef]
|
|
forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState [NodeDef]
|
|
</span><a href="TensorFlow.Build.html#nodeBuffer"><span class="hs-identifier hs-var">nodeBuffer</span></a></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState [NodeDef])
|
|
-> [NodeDef] -> BuildT Identity ()
|
|
forall s (m :: * -> *) a.
|
|
(MonadState s m, Monoid a) =>
|
|
Setter' s a -> a -> m ()
|
|
</span><span class="hs-operator hs-var"><>=</span></span><span> </span><span class="annot"><span class="annottext">GraphDef
|
|
</span><a href="#local-6989586621679165361"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">GraphDef
|
|
-> FoldLike [NodeDef] GraphDef GraphDef [NodeDef] [NodeDef]
|
|
-> [NodeDef]
|
|
forall s a t b. s -> FoldLike a s t a b -> a
|
|
</span><span class="hs-operator hs-var">^.</span></span><span> </span><span class="annot"><span class="annottext">FoldLike [NodeDef] GraphDef GraphDef [NodeDef] [NodeDef]
|
|
forall (f :: * -> *) s a.
|
|
(Functor f, HasField s "node" a) =>
|
|
LensLike' f s a
|
|
</span><span class="hs-identifier hs-var">node</span></span><span>
|
|
</span><span id="line-245"></span><span>
|
|
</span><span id="line-246"></span><span class="hs-comment">-- | Render the given op if it hasn't been rendered already, and return its</span><span>
|
|
</span><span id="line-247"></span><span class="hs-comment">-- name.</span><span>
|
|
</span><span id="line-248"></span><span class="annot"><a href="TensorFlow.Build.html#getOrAddOp"><span class="hs-identifier hs-type">getOrAddOp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Output.html#OpDef"><span class="hs-identifier hs-type">OpDef</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#Build"><span class="hs-identifier hs-type">Build</span></a></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-type">NodeName</span></a></span><span>
|
|
</span><span id="line-249"></span><span id="getOrAddOp"><span class="annot"><span class="annottext">getOrAddOp :: OpDef -> Build NodeName
|
|
</span><a href="TensorFlow.Build.html#getOrAddOp"><span class="hs-identifier hs-var hs-var">getOrAddOp</span></a></span></span><span> </span><span id="local-6989586621679165360"><span class="annot"><span class="annottext">o :: OpDef
|
|
</span><a href="#local-6989586621679165360"><span class="hs-identifier hs-var">o</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
|
|
</span><span id="line-250"></span><span> </span><span id="local-6989586621679165359"><span class="annot"><span class="annottext">PendingNode
|
|
</span><a href="#local-6989586621679165359"><span class="hs-identifier hs-var">pending</span></a></span></span><span> </span><span class="hs-glyph"><-</span><span> </span><span class="annot"><span class="annottext">OpDef -> Build PendingNode
|
|
</span><a href="TensorFlow.Build.html#getPendingNode"><span class="hs-identifier hs-var">getPendingNode</span></a></span><span> </span><span class="annot"><span class="annottext">OpDef
|
|
</span><a href="#local-6989586621679165360"><span class="hs-identifier hs-var">o</span></a></span><span>
|
|
</span><span id="line-251"></span><span> </span><span class="annot"><span class="annottext">FoldLike
|
|
(Maybe NodeDef)
|
|
GraphState
|
|
GraphState
|
|
(Map PendingNode NodeDef)
|
|
(Map PendingNode NodeDef)
|
|
-> (Map PendingNode NodeDef -> Maybe NodeDef)
|
|
-> BuildT Identity (Maybe NodeDef)
|
|
forall s (m :: * -> *) r t a b.
|
|
MonadState s m =>
|
|
FoldLike r s t a b -> (a -> r) -> m r
|
|
</span><span class="hs-identifier hs-var">uses</span></span><span> </span><span class="annot"><span class="annottext">FoldLike
|
|
(Maybe NodeDef)
|
|
GraphState
|
|
GraphState
|
|
(Map PendingNode NodeDef)
|
|
(Map PendingNode NodeDef)
|
|
Lens
|
|
GraphState
|
|
GraphState
|
|
(Map PendingNode NodeDef)
|
|
(Map PendingNode NodeDef)
|
|
</span><a href="TensorFlow.Build.html#renderedNodes"><span class="hs-identifier hs-var">renderedNodes</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PendingNode -> Map PendingNode NodeDef -> Maybe NodeDef
|
|
forall k a. Ord k => k -> Map k a -> Maybe a
|
|
</span><span class="hs-identifier hs-var">Map.lookup</span></span><span> </span><span class="annot"><span class="annottext">PendingNode
|
|
</span><a href="#local-6989586621679165359"><span class="hs-identifier hs-var">pending</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">BuildT Identity (Maybe NodeDef)
|
|
-> (Maybe NodeDef -> Build NodeName) -> Build NodeName
|
|
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
|
|
</span><span class="hs-operator hs-var">>>=</span></span><span> </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
|
|
</span><span id="line-252"></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Just</span></span><span> </span><span id="local-6989586621679165356"><span class="annot"><span class="annottext">n :: NodeDef
|
|
</span><a href="#local-6989586621679165356"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">NodeName -> Build NodeName
|
|
forall (m :: * -> *) a. Monad m => a -> m a
|
|
</span><span class="hs-identifier hs-var">return</span></span><span> </span><span class="annot"><span class="annottext">(NodeName -> Build NodeName) -> NodeName -> Build NodeName
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">Text -> NodeName
|
|
</span><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-var">NodeName</span></a></span><span> </span><span class="annot"><span class="annottext">(Text -> NodeName) -> Text -> NodeName
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">NodeDef
|
|
</span><a href="#local-6989586621679165356"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">NodeDef -> FoldLike Text NodeDef NodeDef Text Text -> Text
|
|
forall s a t b. s -> FoldLike a s t a b -> a
|
|
</span><span class="hs-operator hs-var">^.</span></span><span> </span><span class="annot"><span class="annottext">FoldLike Text NodeDef NodeDef Text Text
|
|
forall (f :: * -> *) s a.
|
|
(Functor f, HasField s "name" a) =>
|
|
LensLike' f s a
|
|
</span><span class="hs-identifier hs-var">name</span></span><span>
|
|
</span><span id="line-253"></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Nothing</span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">PendingNode -> Build NodeName
|
|
</span><a href="TensorFlow.Build.html#addNewOpFromPending"><span class="hs-identifier hs-var">addNewOpFromPending</span></a></span><span> </span><span class="annot"><span class="annottext">PendingNode
|
|
</span><a href="#local-6989586621679165359"><span class="hs-identifier hs-var">pending</span></a></span><span>
|
|
</span><span id="line-254"></span><span>
|
|
</span><span id="line-255"></span><span class="annot"><a href="TensorFlow.Build.html#lookupNode"><span class="hs-identifier hs-type">lookupNode</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-type">NodeName</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#Build"><span class="hs-identifier hs-type">Build</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">NodeDef</span></span><span>
|
|
</span><span id="line-256"></span><span id="lookupNode"><span class="annot"><span class="annottext">lookupNode :: NodeName -> Build NodeDef
|
|
</span><a href="TensorFlow.Build.html#lookupNode"><span class="hs-identifier hs-var hs-var">lookupNode</span></a></span></span><span> </span><span id="local-6989586621679165353"><span class="annot"><span class="annottext">n :: NodeName
|
|
</span><a href="#local-6989586621679165353"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FoldLike
|
|
(Maybe NodeDef)
|
|
GraphState
|
|
GraphState
|
|
(Map NodeName NodeDef)
|
|
(Map NodeName NodeDef)
|
|
-> (Map NodeName NodeDef -> Maybe NodeDef)
|
|
-> BuildT Identity (Maybe NodeDef)
|
|
forall s (m :: * -> *) r t a b.
|
|
MonadState s m =>
|
|
FoldLike r s t a b -> (a -> r) -> m r
|
|
</span><span class="hs-identifier hs-var">uses</span></span><span> </span><span class="annot"><span class="annottext">FoldLike
|
|
(Maybe NodeDef)
|
|
GraphState
|
|
GraphState
|
|
(Map NodeName NodeDef)
|
|
(Map NodeName NodeDef)
|
|
Lens
|
|
GraphState GraphState (Map NodeName NodeDef) (Map NodeName NodeDef)
|
|
</span><a href="TensorFlow.Build.html#renderedNodeDefs"><span class="hs-identifier hs-var">renderedNodeDefs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">NodeName -> Map NodeName NodeDef -> Maybe NodeDef
|
|
forall k a. Ord k => k -> Map k a -> Maybe a
|
|
</span><span class="hs-identifier hs-var">Map.lookup</span></span><span> </span><span class="annot"><span class="annottext">NodeName
|
|
</span><a href="#local-6989586621679165353"><span class="hs-identifier hs-var">n</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">BuildT Identity (Maybe NodeDef)
|
|
-> (Maybe NodeDef -> Build NodeDef) -> Build NodeDef
|
|
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
|
|
</span><span class="hs-operator hs-var">>>=</span></span><span> </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
|
|
</span><span id="line-257"></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Just</span></span><span> </span><span id="local-6989586621679165352"><span class="annot"><span class="annottext">n' :: NodeDef
|
|
</span><a href="#local-6989586621679165352"><span class="hs-identifier hs-var">n'</span></a></span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">NodeDef -> Build NodeDef
|
|
forall (m :: * -> *) a. Monad m => a -> m a
|
|
</span><span class="hs-identifier hs-var">return</span></span><span> </span><span class="annot"><span class="annottext">NodeDef
|
|
</span><a href="#local-6989586621679165352"><span class="hs-identifier hs-var">n'</span></a></span><span>
|
|
</span><span id="line-258"></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Nothing</span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">String -> Build NodeDef
|
|
forall a. HasCallStack => String -> a
|
|
</span><span class="hs-identifier hs-var">error</span></span><span> </span><span class="annot"><span class="annottext">(String -> Build NodeDef) -> String -> Build NodeDef
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="hs-string">"lookupNode: unknown node name "</span></span><span> </span><span class="annot"><span class="annottext">String -> ShowS
|
|
forall a. [a] -> [a] -> [a]
|
|
</span><span class="hs-operator hs-var">++</span></span><span> </span><span class="annot"><span class="annottext">NodeName -> String
|
|
forall a. Show a => a -> String
|
|
</span><span class="hs-identifier hs-var">show</span></span><span> </span><span class="annot"><span class="annottext">NodeName
|
|
</span><a href="#local-6989586621679165353"><span class="hs-identifier hs-var">n</span></a></span><span>
|
|
</span><span id="line-259"></span><span>
|
|
</span><span id="line-260"></span><span class="hs-comment">-- | Add a new node for a given 'OpDef'. This is used for making "stateful" ops</span><span>
|
|
</span><span id="line-261"></span><span class="hs-comment">-- which are not safe to dedup (e.g, "variable" and "assign").</span><span>
|
|
</span><span id="line-262"></span><span class="annot"><a href="TensorFlow.Build.html#addNewOp"><span class="hs-identifier hs-type">addNewOp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Output.html#OpDef"><span class="hs-identifier hs-type">OpDef</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#Build"><span class="hs-identifier hs-type">Build</span></a></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-type">NodeName</span></a></span><span>
|
|
</span><span id="line-263"></span><span id="addNewOp"><span class="annot"><span class="annottext">addNewOp :: OpDef -> Build NodeName
|
|
</span><a href="TensorFlow.Build.html#addNewOp"><span class="hs-identifier hs-var hs-var">addNewOp</span></a></span></span><span> </span><span id="local-6989586621679165350"><span class="annot"><span class="annottext">o :: OpDef
|
|
</span><a href="#local-6989586621679165350"><span class="hs-identifier hs-var">o</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">OpDef -> Build PendingNode
|
|
</span><a href="TensorFlow.Build.html#getPendingNode"><span class="hs-identifier hs-var">getPendingNode</span></a></span><span> </span><span class="annot"><span class="annottext">OpDef
|
|
</span><a href="#local-6989586621679165350"><span class="hs-identifier hs-var">o</span></a></span><span> </span><span class="annot"><span class="annottext">Build PendingNode
|
|
-> (PendingNode -> Build NodeName) -> Build NodeName
|
|
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
|
|
</span><span class="hs-operator hs-var">>>=</span></span><span> </span><span class="annot"><span class="annottext">PendingNode -> Build NodeName
|
|
</span><a href="TensorFlow.Build.html#addNewOpFromPending"><span class="hs-identifier hs-var">addNewOpFromPending</span></a></span><span>
|
|
</span><span id="line-264"></span><span>
|
|
</span><span id="line-265"></span><span class="annot"><a href="TensorFlow.Build.html#addNewOpFromPending"><span class="hs-identifier hs-type">addNewOpFromPending</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#PendingNode"><span class="hs-identifier hs-type">PendingNode</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#Build"><span class="hs-identifier hs-type">Build</span></a></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-type">NodeName</span></a></span><span>
|
|
</span><span id="line-266"></span><span id="addNewOpFromPending"><span class="annot"><span class="annottext">addNewOpFromPending :: PendingNode -> Build NodeName
|
|
</span><a href="TensorFlow.Build.html#addNewOpFromPending"><span class="hs-identifier hs-var hs-var">addNewOpFromPending</span></a></span></span><span> </span><span id="local-6989586621679165349"><span class="annot"><span class="annottext">pending :: PendingNode
|
|
</span><a href="#local-6989586621679165349"><span class="hs-identifier hs-var">pending</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
|
|
</span><span id="line-267"></span><span> </span><span id="local-6989586621679165348"><span class="annot"><span class="annottext">NodeName
|
|
</span><a href="#local-6989586621679165348"><span class="hs-identifier hs-var">nodeName</span></a></span></span><span> </span><span class="hs-glyph"><-</span><span> </span><span class="annot"><span class="annottext">PendingNode -> Build NodeName
|
|
</span><a href="TensorFlow.Build.html#renderPendingNode"><span class="hs-identifier hs-var">renderPendingNode</span></a></span><span> </span><span class="annot"><span class="annottext">PendingNode
|
|
</span><a href="#local-6989586621679165349"><span class="hs-identifier hs-var">pending</span></a></span><span>
|
|
</span><span id="line-268"></span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679165346"><span class="annot"><span class="annottext">nodeDef :: NodeDef
|
|
</span><a href="#local-6989586621679165346"><span class="hs-identifier hs-var hs-var">nodeDef</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PendingNode -> NodeDef
|
|
</span><a href="TensorFlow.Build.html#pendingNodeDef"><span class="hs-identifier hs-var">pendingNodeDef</span></a></span><span> </span><span class="annot"><span class="annottext">PendingNode
|
|
</span><a href="#local-6989586621679165349"><span class="hs-identifier hs-var">pending</span></a></span><span> </span><span class="annot"><span class="annottext">NodeDef -> (NodeDef -> NodeDef) -> NodeDef
|
|
forall s t. s -> (s -> t) -> t
|
|
</span><span class="hs-operator hs-var">&</span></span><span> </span><span class="annot"><span class="annottext">forall (f :: * -> *). Identical f => LensLike' f NodeDef Text
|
|
forall (f :: * -> *) s a.
|
|
(Functor f, HasField s "name" a) =>
|
|
LensLike' f s a
|
|
</span><span class="hs-identifier hs-var">name</span></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *). Identical f => LensLike' f NodeDef Text)
|
|
-> Text -> NodeDef -> NodeDef
|
|
forall s t a b. Setter s t a b -> b -> s -> t
|
|
</span><span class="hs-operator hs-var">.~</span></span><span> </span><span class="annot"><span class="annottext">NodeName -> Text
|
|
</span><a href="TensorFlow.Output.html#unNodeName"><span class="hs-identifier hs-var hs-var">unNodeName</span></a></span><span> </span><span class="annot"><span class="annottext">NodeName
|
|
</span><a href="#local-6989586621679165348"><span class="hs-identifier hs-var">nodeName</span></a></span><span>
|
|
</span><span id="line-269"></span><span> </span><span class="annot"><span class="annottext">Lens GraphState GraphState [NodeDef] [NodeDef]
|
|
forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState [NodeDef]
|
|
</span><a href="TensorFlow.Build.html#nodeBuffer"><span class="hs-identifier hs-var">nodeBuffer</span></a></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState [NodeDef])
|
|
-> ([NodeDef] -> [NodeDef]) -> BuildT Identity ()
|
|
forall s (m :: * -> *) a b.
|
|
MonadState s m =>
|
|
Setter s s a b -> (a -> b) -> m ()
|
|
</span><span class="hs-operator hs-var">%=</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">NodeDef
|
|
</span><a href="#local-6989586621679165346"><span class="hs-identifier hs-var">nodeDef</span></a></span><span> </span><span class="annot"><span class="annottext">NodeDef -> [NodeDef] -> [NodeDef]
|
|
forall a. a -> [a] -> [a]
|
|
</span><span class="hs-glyph hs-var">:</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-270"></span><span> </span><span class="annot"><span class="annottext">Lens
|
|
GraphState
|
|
GraphState
|
|
(Map PendingNode NodeDef)
|
|
(Map PendingNode NodeDef)
|
|
forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState (Map PendingNode NodeDef)
|
|
</span><a href="TensorFlow.Build.html#renderedNodes"><span class="hs-identifier hs-var">renderedNodes</span></a></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState (Map PendingNode NodeDef))
|
|
-> (Map PendingNode NodeDef -> Map PendingNode NodeDef)
|
|
-> BuildT Identity ()
|
|
forall s (m :: * -> *) a b.
|
|
MonadState s m =>
|
|
Setter s s a b -> (a -> b) -> m ()
|
|
</span><span class="hs-operator hs-var">%=</span></span><span> </span><span class="annot"><span class="annottext">PendingNode
|
|
-> NodeDef -> Map PendingNode NodeDef -> Map PendingNode NodeDef
|
|
forall k a. Ord k => k -> a -> Map k a -> Map k a
|
|
</span><span class="hs-identifier hs-var">Map.insert</span></span><span> </span><span class="annot"><span class="annottext">PendingNode
|
|
</span><a href="#local-6989586621679165349"><span class="hs-identifier hs-var">pending</span></a></span><span> </span><span class="annot"><span class="annottext">NodeDef
|
|
</span><a href="#local-6989586621679165346"><span class="hs-identifier hs-var">nodeDef</span></a></span><span>
|
|
</span><span id="line-271"></span><span> </span><span class="annot"><span class="annottext">Lens
|
|
GraphState GraphState (Map NodeName NodeDef) (Map NodeName NodeDef)
|
|
forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState (Map NodeName NodeDef)
|
|
</span><a href="TensorFlow.Build.html#renderedNodeDefs"><span class="hs-identifier hs-var">renderedNodeDefs</span></a></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState (Map NodeName NodeDef))
|
|
-> (Map NodeName NodeDef -> Map NodeName NodeDef)
|
|
-> BuildT Identity ()
|
|
forall s (m :: * -> *) a b.
|
|
MonadState s m =>
|
|
Setter s s a b -> (a -> b) -> m ()
|
|
</span><span class="hs-operator hs-var">%=</span></span><span> </span><span class="annot"><span class="annottext">NodeName -> NodeDef -> Map NodeName NodeDef -> Map NodeName NodeDef
|
|
forall k a. Ord k => k -> a -> Map k a -> Map k a
|
|
</span><span class="hs-identifier hs-var">Map.insert</span></span><span> </span><span class="annot"><span class="annottext">NodeName
|
|
</span><a href="#local-6989586621679165348"><span class="hs-identifier hs-var">nodeName</span></a></span><span> </span><span class="annot"><span class="annottext">NodeDef
|
|
</span><a href="#local-6989586621679165346"><span class="hs-identifier hs-var">nodeDef</span></a></span><span>
|
|
</span><span id="line-272"></span><span> </span><span class="annot"><span class="annottext">NodeName -> Build NodeName
|
|
forall (m :: * -> *) a. Monad m => a -> m a
|
|
</span><span class="hs-identifier hs-var">return</span></span><span> </span><span class="annot"><span class="annottext">NodeName
|
|
</span><a href="#local-6989586621679165348"><span class="hs-identifier hs-var">nodeName</span></a></span><span>
|
|
</span><span id="line-273"></span><span>
|
|
</span><span id="line-274"></span><span class="hs-comment">-- | Get the pending node corresponding to an OpDef, which may or may not have</span><span>
|
|
</span><span id="line-275"></span><span class="hs-comment">-- been rendered before. Implicitly renders all of this node's inputs.</span><span>
|
|
</span><span id="line-276"></span><span class="annot"><a href="TensorFlow.Build.html#getPendingNode"><span class="hs-identifier hs-type">getPendingNode</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Output.html#OpDef"><span class="hs-identifier hs-type">OpDef</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#Build"><span class="hs-identifier hs-type">Build</span></a></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#PendingNode"><span class="hs-identifier hs-type">PendingNode</span></a></span><span>
|
|
</span><span id="line-277"></span><span id="getPendingNode"><span class="annot"><span class="annottext">getPendingNode :: OpDef -> Build PendingNode
|
|
</span><a href="TensorFlow.Build.html#getPendingNode"><span class="hs-identifier hs-var hs-var">getPendingNode</span></a></span></span><span> </span><span id="local-6989586621679165343"><span class="annot"><span class="annottext">o :: OpDef
|
|
</span><a href="#local-6989586621679165343"><span class="hs-identifier hs-var">o</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
|
|
</span><span id="line-278"></span><span> </span><span class="hs-comment">-- An empty string in the proto field means that no specific</span><span>
|
|
</span><span id="line-279"></span><span> </span><span class="hs-comment">-- device is specified.</span><span>
|
|
</span><span id="line-280"></span><span> </span><span id="local-6989586621679165342"><span class="annot"><span class="annottext">Text
|
|
</span><a href="#local-6989586621679165342"><span class="hs-identifier hs-var">dev</span></a></span></span><span> </span><span class="hs-glyph"><-</span><span> </span><span class="annot"><span class="annottext">Text -> (Device -> Text) -> Maybe Device -> Text
|
|
forall b a. b -> (a -> b) -> Maybe a -> b
|
|
</span><span class="hs-identifier hs-var">maybe</span></span><span> </span><span class="annot"><span class="hs-string">""</span></span><span> </span><span class="annot"><span class="annottext">Device -> Text
|
|
</span><a href="TensorFlow.Output.html#deviceName"><span class="hs-identifier hs-var hs-var">deviceName</span></a></span><span> </span><span class="annot"><span class="annottext">(Maybe Device -> Text)
|
|
-> BuildT Identity (Maybe Device) -> BuildT Identity Text
|
|
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
|
|
</span><span class="hs-operator hs-var"><$></span></span><span> </span><span class="annot"><span class="annottext">FoldLike
|
|
(Maybe Device) GraphState GraphState (Maybe Device) (Maybe Device)
|
|
-> BuildT Identity (Maybe Device)
|
|
forall s (m :: * -> *) a t b.
|
|
MonadState s m =>
|
|
FoldLike a s t a b -> m a
|
|
</span><span class="hs-identifier hs-var">use</span></span><span> </span><span class="annot"><span class="annottext">FoldLike
|
|
(Maybe Device) GraphState GraphState (Maybe Device) (Maybe Device)
|
|
Lens GraphState GraphState (Maybe Device) (Maybe Device)
|
|
</span><a href="TensorFlow.Build.html#defaultDevice"><span class="hs-identifier hs-var">defaultDevice</span></a></span><span>
|
|
</span><span id="line-281"></span><span> </span><span id="local-6989586621679165338"><span class="annot"><span class="annottext">[Scope]
|
|
</span><a href="#local-6989586621679165338"><span class="hs-identifier hs-var">scope</span></a></span></span><span> </span><span class="hs-glyph"><-</span><span> </span><span class="annot"><span class="annottext">FoldLike [Scope] GraphState GraphState [Scope] [Scope]
|
|
-> BuildT Identity [Scope]
|
|
forall s (m :: * -> *) a t b.
|
|
MonadState s m =>
|
|
FoldLike a s t a b -> m a
|
|
</span><span class="hs-identifier hs-var">use</span></span><span> </span><span class="annot"><span class="annottext">FoldLike [Scope] GraphState GraphState [Scope] [Scope]
|
|
Lens GraphState GraphState [Scope] [Scope]
|
|
</span><a href="TensorFlow.Build.html#currentScope"><span class="hs-identifier hs-var">currentScope</span></a></span><span>
|
|
</span><span id="line-282"></span><span> </span><span id="local-6989586621679165337"><span class="annot"><span class="annottext">Set NodeName
|
|
</span><a href="#local-6989586621679165337"><span class="hs-identifier hs-var">controls</span></a></span></span><span> </span><span class="hs-glyph"><-</span><span> </span><span class="annot"><span class="annottext">FoldLike
|
|
(Set NodeName) GraphState GraphState (Set NodeName) (Set NodeName)
|
|
-> BuildT Identity (Set NodeName)
|
|
forall s (m :: * -> *) a t b.
|
|
MonadState s m =>
|
|
FoldLike a s t a b -> m a
|
|
</span><span class="hs-identifier hs-var">use</span></span><span> </span><span class="annot"><span class="annottext">FoldLike
|
|
(Set NodeName) GraphState GraphState (Set NodeName) (Set NodeName)
|
|
Lens GraphState GraphState (Set NodeName) (Set NodeName)
|
|
</span><a href="TensorFlow.Build.html#defaultControlInputs"><span class="hs-identifier hs-var">defaultControlInputs</span></a></span><span>
|
|
</span><span id="line-283"></span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679165336"><span class="annot"><span class="annottext">inputs :: [Text]
|
|
</span><a href="#local-6989586621679165336"><span class="hs-identifier hs-var hs-var">inputs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Output -> Text) -> [Output] -> [Text]
|
|
forall a b. (a -> b) -> [a] -> [b]
|
|
</span><span class="hs-identifier hs-var">map</span></span><span> </span><span class="annot"><span class="annottext">Output -> Text
|
|
</span><a href="TensorFlow.Build.html#encodeOutput"><span class="hs-identifier hs-var">encodeOutput</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">OpDef
|
|
</span><a href="#local-6989586621679165343"><span class="hs-identifier hs-var">o</span></a></span><span> </span><span class="annot"><span class="annottext">OpDef
|
|
-> FoldLike [Output] OpDef OpDef [Output] [Output] -> [Output]
|
|
forall s a t b. s -> FoldLike a s t a b -> a
|
|
</span><span class="hs-operator hs-var">^.</span></span><span> </span><span class="annot"><span class="annottext">FoldLike [Output] OpDef OpDef [Output] [Output]
|
|
Lens' OpDef [Output]
|
|
</span><a href="TensorFlow.Output.html#opInputs"><span class="hs-identifier hs-var">opInputs</span></a></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-284"></span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679165335"><span class="annot"><span class="annottext">controlInputs :: [Text]
|
|
</span><a href="#local-6989586621679165335"><span class="hs-identifier hs-var hs-var">controlInputs</span></a></span></span><span>
|
|
</span><span id="line-285"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(NodeName -> Text) -> [NodeName] -> [Text]
|
|
forall a b. (a -> b) -> [a] -> [b]
|
|
</span><span class="hs-identifier hs-var">map</span></span><span> </span><span class="annot"><span class="annottext">NodeName -> Text
|
|
</span><a href="#local-6989586621679165334"><span class="hs-identifier hs-var">makeDep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">OpDef
|
|
</span><a href="#local-6989586621679165343"><span class="hs-identifier hs-var">o</span></a></span><span> </span><span class="annot"><span class="annottext">OpDef
|
|
-> FoldLike [NodeName] OpDef OpDef [NodeName] [NodeName]
|
|
-> [NodeName]
|
|
forall s a t b. s -> FoldLike a s t a b -> a
|
|
</span><span class="hs-operator hs-var">^.</span></span><span> </span><span class="annot"><span class="annottext">FoldLike [NodeName] OpDef OpDef [NodeName] [NodeName]
|
|
Lens' OpDef [NodeName]
|
|
</span><a href="TensorFlow.Output.html#opControlInputs"><span class="hs-identifier hs-var">opControlInputs</span></a></span><span> </span><span class="annot"><span class="annottext">[NodeName] -> [NodeName] -> [NodeName]
|
|
forall a. [a] -> [a] -> [a]
|
|
</span><span class="hs-operator hs-var">++</span></span><span> </span><span class="annot"><span class="annottext">Set NodeName -> [NodeName]
|
|
forall a. Set a -> [a]
|
|
</span><span class="hs-identifier hs-var">Set.toList</span></span><span> </span><span class="annot"><span class="annottext">Set NodeName
|
|
</span><a href="#local-6989586621679165337"><span class="hs-identifier hs-var">controls</span></a></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-286"></span><span> </span><span class="annot"><span class="annottext">PendingNode -> Build PendingNode
|
|
forall (m :: * -> *) a. Monad m => a -> m a
|
|
</span><span class="hs-identifier hs-var">return</span></span><span> </span><span class="annot"><span class="annottext">(PendingNode -> Build PendingNode)
|
|
-> PendingNode -> Build PendingNode
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">[Scope] -> PendingNodeName -> NodeDef -> PendingNode
|
|
</span><a href="TensorFlow.Build.html#PendingNode"><span class="hs-identifier hs-var">PendingNode</span></a></span><span> </span><span class="annot"><span class="annottext">[Scope]
|
|
</span><a href="#local-6989586621679165338"><span class="hs-identifier hs-var">scope</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">OpDef
|
|
</span><a href="#local-6989586621679165343"><span class="hs-identifier hs-var">o</span></a></span><span> </span><span class="annot"><span class="annottext">OpDef
|
|
-> FoldLike
|
|
PendingNodeName OpDef OpDef PendingNodeName PendingNodeName
|
|
-> PendingNodeName
|
|
forall s a t b. s -> FoldLike a s t a b -> a
|
|
</span><span class="hs-operator hs-var">^.</span></span><span> </span><span class="annot"><span class="annottext">FoldLike
|
|
PendingNodeName OpDef OpDef PendingNodeName PendingNodeName
|
|
Lens' OpDef PendingNodeName
|
|
</span><a href="TensorFlow.Output.html#opName"><span class="hs-identifier hs-var">opName</span></a></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-287"></span><span> </span><span class="annot"><span class="annottext">(NodeDef -> PendingNode) -> NodeDef -> PendingNode
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">NodeDef
|
|
forall msg. Message msg => msg
|
|
</span><span class="hs-identifier hs-var">defMessage</span></span><span> </span><span class="annot"><span class="annottext">NodeDef -> (NodeDef -> NodeDef) -> NodeDef
|
|
forall s t. s -> (s -> t) -> t
|
|
</span><span class="hs-operator hs-var">&</span></span><span> </span><span class="annot"><span class="annottext">forall (f :: * -> *). Identical f => LensLike' f NodeDef Text
|
|
forall (f :: * -> *) s a.
|
|
(Functor f, HasField s "op" a) =>
|
|
LensLike' f s a
|
|
</span><span class="hs-identifier hs-var">op</span></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *). Identical f => LensLike' f NodeDef Text)
|
|
-> Text -> NodeDef -> NodeDef
|
|
forall s t a b. Setter s t a b -> b -> s -> t
|
|
</span><span class="hs-operator hs-var">.~</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">OpType -> Text
|
|
</span><a href="TensorFlow.Output.html#unOpType"><span class="hs-identifier hs-var hs-var">unOpType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">OpDef
|
|
</span><a href="#local-6989586621679165343"><span class="hs-identifier hs-var">o</span></a></span><span> </span><span class="annot"><span class="annottext">OpDef -> FoldLike OpType OpDef OpDef OpType OpType -> OpType
|
|
forall s a t b. s -> FoldLike a s t a b -> a
|
|
</span><span class="hs-operator hs-var">^.</span></span><span> </span><span class="annot"><span class="annottext">FoldLike OpType OpDef OpDef OpType OpType
|
|
Lens' OpDef OpType
|
|
</span><a href="TensorFlow.Output.html#opType"><span class="hs-identifier hs-var">opType</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Text</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-288"></span><span> </span><span class="annot"><span class="annottext">NodeDef -> (NodeDef -> NodeDef) -> NodeDef
|
|
forall s t. s -> (s -> t) -> t
|
|
</span><span class="hs-operator hs-var">&</span></span><span> </span><span class="annot"><span class="annottext">forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f NodeDef (Map Text AttrValue)
|
|
forall (f :: * -> *) s a.
|
|
(Functor f, HasField s "attr" a) =>
|
|
LensLike' f s a
|
|
</span><span class="hs-identifier hs-var">attr</span></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f NodeDef (Map Text AttrValue))
|
|
-> Map Text AttrValue -> NodeDef -> NodeDef
|
|
forall s t a b. Setter s t a b -> b -> s -> t
|
|
</span><span class="hs-operator hs-var">.~</span></span><span> </span><span class="annot"><span class="annottext">OpDef -> Map Text AttrValue
|
|
</span><a href="TensorFlow.Output.html#_opAttrs"><span class="hs-identifier hs-var hs-var">_opAttrs</span></a></span><span> </span><span class="annot"><span class="annottext">OpDef
|
|
</span><a href="#local-6989586621679165343"><span class="hs-identifier hs-var">o</span></a></span><span>
|
|
</span><span id="line-289"></span><span> </span><span class="annot"><span class="annottext">NodeDef -> (NodeDef -> NodeDef) -> NodeDef
|
|
forall s t. s -> (s -> t) -> t
|
|
</span><span class="hs-operator hs-var">&</span></span><span> </span><span class="annot"><span class="annottext">forall (f :: * -> *). Identical f => LensLike' f NodeDef [Text]
|
|
forall (f :: * -> *) s a.
|
|
(Functor f, HasField s "input" a) =>
|
|
LensLike' f s a
|
|
</span><span class="hs-identifier hs-var">input</span></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *). Identical f => LensLike' f NodeDef [Text])
|
|
-> [Text] -> NodeDef -> NodeDef
|
|
forall s t a b. Setter s t a b -> b -> s -> t
|
|
</span><span class="hs-operator hs-var">.~</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Text]
|
|
</span><a href="#local-6989586621679165336"><span class="hs-identifier hs-var">inputs</span></a></span><span> </span><span class="annot"><span class="annottext">[Text] -> [Text] -> [Text]
|
|
forall a. [a] -> [a] -> [a]
|
|
</span><span class="hs-operator hs-var">++</span></span><span> </span><span class="annot"><span class="annottext">[Text]
|
|
</span><a href="#local-6989586621679165335"><span class="hs-identifier hs-var">controlInputs</span></a></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-290"></span><span> </span><span class="annot"><span class="annottext">NodeDef -> (NodeDef -> NodeDef) -> NodeDef
|
|
forall s t. s -> (s -> t) -> t
|
|
</span><span class="hs-operator hs-var">&</span></span><span> </span><span class="annot"><span class="annottext">forall (f :: * -> *). Identical f => LensLike' f NodeDef Text
|
|
forall (f :: * -> *) s a.
|
|
(Functor f, HasField s "device" a) =>
|
|
LensLike' f s a
|
|
</span><span class="hs-identifier hs-var">device</span></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *). Identical f => LensLike' f NodeDef Text)
|
|
-> Text -> NodeDef -> NodeDef
|
|
forall s t a b. Setter s t a b -> b -> s -> t
|
|
</span><span class="hs-operator hs-var">.~</span></span><span> </span><span class="annot"><span class="annottext">Text
|
|
</span><a href="#local-6989586621679165342"><span class="hs-identifier hs-var">dev</span></a></span><span>
|
|
</span><span id="line-291"></span><span> </span><span class="hs-keyword">where</span><span>
|
|
</span><span id="line-292"></span><span> </span><span id="local-6989586621679165334"><span class="annot"><span class="annottext">makeDep :: NodeName -> Text
|
|
</span><a href="#local-6989586621679165334"><span class="hs-identifier hs-var hs-var">makeDep</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-string">"^"</span></span><span> </span><span class="annot"><span class="annottext">Text -> Text -> Text
|
|
forall a. Semigroup a => a -> a -> a
|
|
</span><span class="hs-operator hs-var"><></span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Text -> Text) -> (NodeName -> Text) -> NodeName -> Text
|
|
forall b c a. (b -> c) -> (a -> b) -> a -> c
|
|
</span><span class="hs-operator hs-var">.</span></span><span> </span><span class="annot"><span class="annottext">NodeName -> Text
|
|
</span><a href="TensorFlow.Output.html#unNodeName"><span class="hs-identifier hs-var hs-var">unNodeName</span></a></span><span>
|
|
</span><span id="line-293"></span><span>
|
|
</span><span id="line-294"></span><span class="hs-comment">-- | Pick a name for a pending node. If it has an explicit name, just use that;</span><span>
|
|
</span><span id="line-295"></span><span class="hs-comment">-- if the name is implicit, assign a new unique name based on the op type.</span><span>
|
|
</span><span id="line-296"></span><span class="annot"><a href="TensorFlow.Build.html#renderPendingNode"><span class="hs-identifier hs-type">renderPendingNode</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#PendingNode"><span class="hs-identifier hs-type">PendingNode</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#Build"><span class="hs-identifier hs-type">Build</span></a></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-type">NodeName</span></a></span><span>
|
|
</span><span id="line-297"></span><span id="renderPendingNode"><span class="annot"><span class="annottext">renderPendingNode :: PendingNode -> Build NodeName
|
|
</span><a href="TensorFlow.Build.html#renderPendingNode"><span class="hs-identifier hs-var hs-var">renderPendingNode</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="TensorFlow.Build.html#PendingNode"><span class="hs-identifier hs-type">PendingNode</span></a></span><span> </span><span id="local-6989586621679165331"><span class="annot"><span class="annottext">scope :: [Scope]
|
|
</span><a href="#local-6989586621679165331"><span class="hs-identifier hs-var">scope</span></a></span></span><span> </span><span id="local-6989586621679165330"><span class="annot"><span class="annottext">pendingName :: PendingNodeName
|
|
</span><a href="#local-6989586621679165330"><span class="hs-identifier hs-var">pendingName</span></a></span></span><span> </span><span id="local-6989586621679165329"><span class="annot"><span class="annottext">nodeDef :: NodeDef
|
|
</span><a href="#local-6989586621679165329"><span class="hs-identifier hs-var">nodeDef</span></a></span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-298"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Text -> NodeName
|
|
</span><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-var">NodeName</span></a></span><span> </span><span class="annot"><span class="annottext">(Text -> NodeName) -> (Text -> Text) -> Text -> NodeName
|
|
forall b c a. (b -> c) -> (a -> b) -> a -> c
|
|
</span><span class="hs-operator hs-var">.</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Text
|
|
</span><a href="#local-6989586621679165328"><span class="hs-identifier hs-var">scopePrefix</span></a></span><span> </span><span class="annot"><span class="annottext">Text -> Text -> Text
|
|
forall a. Semigroup a => a -> a -> a
|
|
</span><span class="hs-operator hs-var"><></span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Text -> NodeName) -> BuildT Identity Text -> Build NodeName
|
|
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
|
|
</span><span class="hs-operator hs-var"><$></span></span><span> </span><span class="annot"><span class="annottext">BuildT Identity Text
|
|
</span><a href="#local-6989586621679165327"><span class="hs-identifier hs-var">getName</span></a></span><span>
|
|
</span><span id="line-299"></span><span> </span><span class="hs-keyword">where</span><span>
|
|
</span><span id="line-300"></span><span> </span><span id="local-6989586621679165328"><span class="annot"><span class="annottext">scopePrefix :: Text
|
|
</span><a href="#local-6989586621679165328"><span class="hs-identifier hs-var hs-var">scopePrefix</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Text] -> Text
|
|
</span><span class="hs-identifier hs-var">Text.concat</span></span><span> </span><span class="annot"><span class="annottext">([Text] -> Text) -> [Text] -> Text
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">(Scope -> Text) -> [Scope] -> [Text]
|
|
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
|
|
</span><span class="hs-identifier hs-var">fmap</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">Text -> Text -> Text
|
|
forall a. Semigroup a => a -> a -> a
|
|
</span><span class="hs-operator hs-var"><></span></span><span> </span><span class="annot"><span class="hs-string">"/"</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Text -> Text) -> (Scope -> Text) -> Scope -> Text
|
|
forall b c a. (b -> c) -> (a -> b) -> a -> c
|
|
</span><span class="hs-operator hs-var">.</span></span><span> </span><span class="annot"><span class="annottext">Scope -> Text
|
|
</span><a href="TensorFlow.Build.html#unScope"><span class="hs-identifier hs-var hs-var">unScope</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Scope]
|
|
</span><a href="#local-6989586621679165331"><span class="hs-identifier hs-var">scope</span></a></span><span>
|
|
</span><span id="line-301"></span><span> </span><span id="local-6989586621679165327"><span class="annot"><span class="annottext">getName :: BuildT Identity Text
|
|
</span><a href="#local-6989586621679165327"><span class="hs-identifier hs-var hs-var">getName</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">PendingNodeName
|
|
</span><a href="#local-6989586621679165330"><span class="hs-identifier hs-var">pendingName</span></a></span><span> </span><span class="hs-keyword">of</span><span>
|
|
</span><span id="line-302"></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#ExplicitName"><span class="hs-identifier hs-type">ExplicitName</span></a></span><span> </span><span id="local-6989586621679165325"><span class="annot"><span class="annottext">n :: Text
|
|
</span><a href="#local-6989586621679165325"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="annottext">Text -> BuildT Identity Text
|
|
forall (m :: * -> *) a. Monad m => a -> m a
|
|
</span><span class="hs-identifier hs-var">return</span></span><span> </span><span class="annot"><span class="annottext">Text
|
|
</span><a href="#local-6989586621679165325"><span class="hs-identifier hs-var">n</span></a></span><span>
|
|
</span><span id="line-303"></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#ImplicitName"><span class="hs-identifier hs-type">ImplicitName</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="hs-keyword">do</span><span>
|
|
</span><span id="line-304"></span><span> </span><span id="local-6989586621679165324"><span class="annot"><span class="annottext">u :: Unique
|
|
</span><a href="#local-6989586621679165324"><span class="hs-identifier hs-var">u</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="TensorFlow.Build.html#Unique"><span class="hs-identifier hs-type">Unique</span></a></span><span> </span><span id="local-6989586621679165323"><span class="annot"><span class="annottext">k :: Int
|
|
</span><a href="#local-6989586621679165323"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph"><-</span><span> </span><span class="annot"><span class="annottext">FoldLike Unique GraphState GraphState Unique Unique
|
|
-> BuildT Identity Unique
|
|
forall s (m :: * -> *) a t b.
|
|
MonadState s m =>
|
|
FoldLike a s t a b -> m a
|
|
</span><span class="hs-identifier hs-var">use</span></span><span> </span><span class="annot"><span class="annottext">FoldLike Unique GraphState GraphState Unique Unique
|
|
Lens GraphState GraphState Unique Unique
|
|
</span><a href="TensorFlow.Build.html#nextUnique"><span class="hs-identifier hs-var">nextUnique</span></a></span><span>
|
|
</span><span id="line-305"></span><span> </span><span class="annot"><span class="annottext">Lens GraphState GraphState Unique Unique
|
|
forall (f :: * -> *). Identical f => LensLike' f GraphState Unique
|
|
</span><a href="TensorFlow.Build.html#nextUnique"><span class="hs-identifier hs-var">nextUnique</span></a></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *).
|
|
Identical f =>
|
|
LensLike' f GraphState Unique)
|
|
-> Unique -> BuildT Identity ()
|
|
forall s (m :: * -> *) a b.
|
|
MonadState s m =>
|
|
Setter s s a b -> b -> m ()
|
|
</span><span class="hs-operator hs-var">.=</span></span><span> </span><span class="annot"><span class="annottext">Unique -> Unique
|
|
forall a. Enum a => a -> a
|
|
</span><span class="hs-identifier hs-var">succ</span></span><span> </span><span class="annot"><span class="annottext">Unique
|
|
</span><a href="#local-6989586621679165324"><span class="hs-identifier hs-var">u</span></a></span><span>
|
|
</span><span id="line-306"></span><span> </span><span class="annot"><span class="annottext">Text -> BuildT Identity Text
|
|
forall (m :: * -> *) a. Monad m => a -> m a
|
|
</span><span class="hs-identifier hs-var">return</span></span><span> </span><span class="annot"><span class="annottext">(Text -> BuildT Identity Text) -> Text -> BuildT Identity Text
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">NodeDef
|
|
</span><a href="#local-6989586621679165329"><span class="hs-identifier hs-var">nodeDef</span></a></span><span> </span><span class="annot"><span class="annottext">NodeDef -> FoldLike Text NodeDef NodeDef Text Text -> Text
|
|
forall s a t b. s -> FoldLike a s t a b -> a
|
|
</span><span class="hs-operator hs-var">^.</span></span><span> </span><span class="annot"><span class="annottext">FoldLike Text NodeDef NodeDef Text Text
|
|
forall (f :: * -> *) s a.
|
|
(Functor f, HasField s "op" a) =>
|
|
LensLike' f s a
|
|
</span><span class="hs-identifier hs-var">op</span></span><span> </span><span class="annot"><span class="annottext">Text -> Text -> Text
|
|
forall a. Semigroup a => a -> a -> a
|
|
</span><span class="hs-operator hs-var"><></span></span><span> </span><span class="annot"><span class="hs-string">"_"</span></span><span> </span><span class="annot"><span class="annottext">Text -> Text -> Text
|
|
forall a. Semigroup a => a -> a -> a
|
|
</span><span class="hs-operator hs-var"><></span></span><span> </span><span class="annot"><span class="annottext">String -> Text
|
|
</span><span class="hs-identifier hs-var">Text.pack</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -> String
|
|
forall a. Show a => a -> String
|
|
</span><span class="hs-identifier hs-var">show</span></span><span> </span><span class="annot"><span class="annottext">Int
|
|
</span><a href="#local-6989586621679165323"><span class="hs-identifier hs-var">k</span></a></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-307"></span><span>
|
|
</span><span id="line-308"></span><span class="hs-comment">-- | Turn an 'Output' into a string representation for the TensorFlow</span><span>
|
|
</span><span id="line-309"></span><span class="hs-comment">-- foreign APIs.</span><span>
|
|
</span><span id="line-310"></span><span class="annot"><a href="TensorFlow.Build.html#encodeOutput"><span class="hs-identifier hs-type">encodeOutput</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Output.html#Output"><span class="hs-identifier hs-type">Output</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Text</span></span><span>
|
|
</span><span id="line-311"></span><span id="encodeOutput"><span class="annot"><span class="annottext">encodeOutput :: Output -> Text
|
|
</span><a href="TensorFlow.Build.html#encodeOutput"><span class="hs-identifier hs-var hs-var">encodeOutput</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="TensorFlow.Output.html#Output"><span class="hs-identifier hs-type">Output</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="TensorFlow.Output.html#OutputIx"><span class="hs-identifier hs-type">OutputIx</span></a></span><span> </span><span class="hs-number">0</span><span class="hs-special">)</span><span> </span><span id="local-6989586621679165318"><span class="annot"><span class="annottext">n :: NodeName
|
|
</span><a href="#local-6989586621679165318"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NodeName -> Text
|
|
</span><a href="TensorFlow.Output.html#unNodeName"><span class="hs-identifier hs-var hs-var">unNodeName</span></a></span><span> </span><span class="annot"><span class="annottext">NodeName
|
|
</span><a href="#local-6989586621679165318"><span class="hs-identifier hs-var">n</span></a></span><span>
|
|
</span><span id="line-312"></span><span class="annot"><a href="TensorFlow.Build.html#encodeOutput"><span class="hs-identifier hs-var">encodeOutput</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="TensorFlow.Output.html#Output"><span class="hs-identifier hs-type">Output</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="TensorFlow.Output.html#OutputIx"><span class="hs-identifier hs-type">OutputIx</span></a></span><span> </span><span id="local-6989586621679165317"><span class="annot"><span class="annottext">i :: Int
|
|
</span><a href="#local-6989586621679165317"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679165316"><span class="annot"><span class="annottext">n :: NodeName
|
|
</span><a href="#local-6989586621679165316"><span class="hs-identifier hs-var">n</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NodeName -> Text
|
|
</span><a href="TensorFlow.Output.html#unNodeName"><span class="hs-identifier hs-var hs-var">unNodeName</span></a></span><span> </span><span class="annot"><span class="annottext">NodeName
|
|
</span><a href="#local-6989586621679165316"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Text -> Text -> Text
|
|
forall a. Semigroup a => a -> a -> a
|
|
</span><span class="hs-operator hs-var"><></span></span><span> </span><span class="annot"><span class="annottext">String -> Text
|
|
</span><span class="hs-identifier hs-var">Text.pack</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-char">':'</span></span><span> </span><span class="annot"><span class="annottext">Char -> ShowS
|
|
forall a. a -> [a] -> [a]
|
|
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">Int -> String
|
|
forall a. Show a => a -> String
|
|
</span><span class="hs-identifier hs-var">show</span></span><span> </span><span class="annot"><span class="annottext">Int
|
|
</span><a href="#local-6989586621679165317"><span class="hs-identifier hs-var">i</span></a></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-313"></span><span>
|
|
</span><span id="line-314"></span><span class="hs-comment">-- | Modify some part of the state, run an action, and restore the state</span><span>
|
|
</span><span id="line-315"></span><span class="hs-comment">-- after that action is done.</span><span>
|
|
</span><span id="line-316"></span><span id="local-6989586621679165646"><span id="local-6989586621679165647"><span id="local-6989586621679165648"><span class="annot"><a href="TensorFlow.Build.html#withStateLens"><span class="hs-identifier hs-type">withStateLens</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#MonadBuild"><span class="hs-identifier hs-type">MonadBuild</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165648"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Lens'</span></span><span> </span><span class="annot"><a href="TensorFlow.Build.html#GraphState"><span class="hs-identifier hs-type">GraphState</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165647"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679165647"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165647"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165648"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165646"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165648"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165646"><span class="hs-identifier hs-type">b</span></a></span></span></span></span><span>
|
|
</span><span id="line-317"></span><span id="withStateLens"><span class="annot"><span class="annottext">withStateLens :: Lens' GraphState a -> (a -> a) -> m b -> m b
|
|
</span><a href="TensorFlow.Build.html#withStateLens"><span class="hs-identifier hs-var hs-var">withStateLens</span></a></span></span><span> </span><span id="local-6989586621679165315"><span class="annot"><span class="annottext">accessor :: Lens' GraphState a
|
|
</span><a href="#local-6989586621679165315"><span class="hs-identifier hs-var">accessor</span></a></span></span><span> </span><span id="local-6989586621679165314"><span class="annot"><span class="annottext">f :: a -> a
|
|
</span><a href="#local-6989586621679165314"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679165313"><span class="annot"><span class="annottext">act :: m b
|
|
</span><a href="#local-6989586621679165313"><span class="hs-identifier hs-var">act</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
|
|
</span><span id="line-318"></span><span> </span><span id="local-6989586621679165312"><span class="annot"><span class="annottext">a
|
|
</span><a href="#local-6989586621679165312"><span class="hs-identifier hs-var">old</span></a></span></span><span> </span><span class="hs-glyph"><-</span><span> </span><span class="annot"><span class="annottext">Build a -> m a
|
|
forall (m :: * -> *) a. MonadBuild m => Build a -> m a
|
|
</span><a href="TensorFlow.Build.html#build"><span class="hs-identifier hs-var">build</span></a></span><span> </span><span class="annot"><span class="annottext">(Build a -> m a) -> Build a -> m a
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">FoldLike a GraphState GraphState a a -> Build a
|
|
forall s (m :: * -> *) a t b.
|
|
MonadState s m =>
|
|
FoldLike a s t a b -> m a
|
|
</span><span class="hs-identifier hs-var">use</span></span><span> </span><span class="annot"><span class="annottext">FoldLike a GraphState GraphState a a
|
|
Lens' GraphState a
|
|
</span><a href="#local-6989586621679165315"><span class="hs-identifier hs-var">accessor</span></a></span><span>
|
|
</span><span id="line-319"></span><span> </span><span class="annot"><span class="annottext">BuildT Identity () -> m ()
|
|
forall (m :: * -> *) a. MonadBuild m => Build a -> m a
|
|
</span><a href="TensorFlow.Build.html#build"><span class="hs-identifier hs-var">build</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildT Identity () -> m ()) -> BuildT Identity () -> m ()
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">Lens' GraphState a
|
|
forall (f :: * -> *). Identical f => LensLike' f GraphState a
|
|
</span><a href="#local-6989586621679165315"><span class="hs-identifier hs-var">accessor</span></a></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *). Identical f => LensLike' f GraphState a)
|
|
-> (a -> a) -> BuildT Identity ()
|
|
forall s (m :: * -> *) a b.
|
|
MonadState s m =>
|
|
Setter s s a b -> (a -> b) -> m ()
|
|
</span><span class="hs-operator hs-var">%=</span></span><span> </span><span class="annot"><span class="annottext">a -> a
|
|
</span><a href="#local-6989586621679165314"><span class="hs-identifier hs-var">f</span></a></span><span>
|
|
</span><span id="line-320"></span><span> </span><span id="local-6989586621679165311"><span class="annot"><span class="annottext">b
|
|
</span><a href="#local-6989586621679165311"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph"><-</span><span> </span><span class="annot"><span class="annottext">m b
|
|
</span><a href="#local-6989586621679165313"><span class="hs-identifier hs-var">act</span></a></span><span>
|
|
</span><span id="line-321"></span><span> </span><span class="annot"><span class="annottext">BuildT Identity () -> m ()
|
|
forall (m :: * -> *) a. MonadBuild m => Build a -> m a
|
|
</span><a href="TensorFlow.Build.html#build"><span class="hs-identifier hs-var">build</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildT Identity () -> m ()) -> BuildT Identity () -> m ()
|
|
forall a b. (a -> b) -> a -> b
|
|
</span><span class="hs-operator hs-var">$</span></span><span> </span><span class="annot"><span class="annottext">Lens' GraphState a
|
|
forall (f :: * -> *). Identical f => LensLike' f GraphState a
|
|
</span><a href="#local-6989586621679165315"><span class="hs-identifier hs-var">accessor</span></a></span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -> *). Identical f => LensLike' f GraphState a)
|
|
-> a -> BuildT Identity ()
|
|
forall s (m :: * -> *) a b.
|
|
MonadState s m =>
|
|
Setter s s a b -> b -> m ()
|
|
</span><span class="hs-operator hs-var">.=</span></span><span> </span><span class="annot"><span class="annottext">a
|
|
</span><a href="#local-6989586621679165312"><span class="hs-identifier hs-var">old</span></a></span><span>
|
|
</span><span id="line-322"></span><span> </span><span class="annot"><span class="annottext">b -> m b
|
|
forall (m :: * -> *) a. Monad m => a -> m a
|
|
</span><span class="hs-identifier hs-var">return</span></span><span> </span><span class="annot"><span class="annottext">b
|
|
</span><a href="#local-6989586621679165311"><span class="hs-identifier hs-var">result</span></a></span><span>
|
|
</span><span id="line-323"></span><span>
|
|
</span><span id="line-324"></span><span class="hs-comment">-- | Set a device for all nodes rendered in the given 'Build' action</span><span>
|
|
</span><span id="line-325"></span><span class="hs-comment">-- (unless further overridden by another use of withDevice).</span><span>
|
|
</span><span id="line-326"></span><span id="local-6989586621679165309"><span id="local-6989586621679165310"><span class="annot"><a href="TensorFlow.Build.html#withDevice"><span class="hs-identifier hs-type">withDevice</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#MonadBuild"><span class="hs-identifier hs-type">MonadBuild</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165310"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Maybe</span></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#Device"><span class="hs-identifier hs-type">Device</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165310"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165309"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165310"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165309"><span class="hs-identifier hs-type">a</span></a></span></span></span><span>
|
|
</span><span id="line-327"></span><span id="withDevice"><span class="annot"><span class="annottext">withDevice :: Maybe Device -> m a -> m a
|
|
</span><a href="TensorFlow.Build.html#withDevice"><span class="hs-identifier hs-var hs-var">withDevice</span></a></span></span><span> </span><span id="local-6989586621679165308"><span class="annot"><span class="annottext">d :: Maybe Device
|
|
</span><a href="#local-6989586621679165308"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Lens GraphState GraphState (Maybe Device) (Maybe Device)
|
|
-> (Maybe Device -> Maybe Device) -> m a -> m a
|
|
forall (m :: * -> *) a b.
|
|
MonadBuild m =>
|
|
Lens' GraphState a -> (a -> a) -> m b -> m b
|
|
</span><a href="TensorFlow.Build.html#withStateLens"><span class="hs-identifier hs-var">withStateLens</span></a></span><span> </span><span class="annot"><span class="annottext">Lens GraphState GraphState (Maybe Device) (Maybe Device)
|
|
</span><a href="TensorFlow.Build.html#defaultDevice"><span class="hs-identifier hs-var">defaultDevice</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Maybe Device -> Maybe Device -> Maybe Device
|
|
forall a b. a -> b -> a
|
|
</span><span class="hs-identifier hs-var">const</span></span><span> </span><span class="annot"><span class="annottext">Maybe Device
|
|
</span><a href="#local-6989586621679165308"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-328"></span><span>
|
|
</span><span id="line-329"></span><span class="hs-comment">-- | Prepend a scope to all nodes rendered in the given 'Build' action.</span><span>
|
|
</span><span id="line-330"></span><span id="local-6989586621679165305"><span id="local-6989586621679165306"><span class="annot"><a href="TensorFlow.Build.html#withNameScope"><span class="hs-identifier hs-type">withNameScope</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#MonadBuild"><span class="hs-identifier hs-type">MonadBuild</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165306"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Text</span></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165306"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165305"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165306"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165305"><span class="hs-identifier hs-type">a</span></a></span></span></span><span>
|
|
</span><span id="line-331"></span><span id="withNameScope"><span class="annot"><span class="annottext">withNameScope :: Text -> m a -> m a
|
|
</span><a href="TensorFlow.Build.html#withNameScope"><span class="hs-identifier hs-var hs-var">withNameScope</span></a></span></span><span> </span><span id="local-6989586621679165304"><span class="annot"><span class="annottext">s :: Text
|
|
</span><a href="#local-6989586621679165304"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Lens GraphState GraphState [Scope] [Scope]
|
|
-> ([Scope] -> [Scope]) -> m a -> m a
|
|
forall (m :: * -> *) a b.
|
|
MonadBuild m =>
|
|
Lens' GraphState a -> (a -> a) -> m b -> m b
|
|
</span><a href="TensorFlow.Build.html#withStateLens"><span class="hs-identifier hs-var">withStateLens</span></a></span><span> </span><span class="annot"><span class="annottext">Lens GraphState GraphState [Scope] [Scope]
|
|
</span><a href="TensorFlow.Build.html#currentScope"><span class="hs-identifier hs-var">currentScope</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Text -> Scope
|
|
</span><a href="TensorFlow.Build.html#Scope"><span class="hs-identifier hs-var">Scope</span></a></span><span> </span><span class="annot"><span class="annottext">Text
|
|
</span><a href="#local-6989586621679165304"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">Scope -> [Scope] -> [Scope]
|
|
forall a. a -> [a] -> [a]
|
|
</span><span class="hs-glyph hs-var">:</span></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-332"></span><span>
|
|
</span><span id="line-333"></span><span class="hs-comment">-- | Add control inputs to all nodes rendered in the given 'Build' action.</span><span>
|
|
</span><span id="line-334"></span><span id="local-6989586621679165302"><span id="local-6989586621679165303"><span class="annot"><a href="TensorFlow.Build.html#withNodeDependencies"><span class="hs-identifier hs-type">withNodeDependencies</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="TensorFlow.Build.html#MonadBuild"><span class="hs-identifier hs-type">MonadBuild</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165303"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Set</span></span><span> </span><span class="annot"><a href="TensorFlow.Output.html#NodeName"><span class="hs-identifier hs-type">NodeName</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165303"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165302"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-></span><span> </span><span class="annot"><a href="#local-6989586621679165303"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679165302"><span class="hs-identifier hs-type">a</span></a></span></span></span><span>
|
|
</span><span id="line-335"></span><span id="withNodeDependencies"><span class="annot"><span class="annottext">withNodeDependencies :: Set NodeName -> m a -> m a
|
|
</span><a href="TensorFlow.Build.html#withNodeDependencies"><span class="hs-identifier hs-var hs-var">withNodeDependencies</span></a></span></span><span> </span><span id="local-6989586621679165301"><span class="annot"><span class="annottext">nodes :: Set NodeName
|
|
</span><a href="#local-6989586621679165301"><span class="hs-identifier hs-var">nodes</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Lens GraphState GraphState (Set NodeName) (Set NodeName)
|
|
-> (Set NodeName -> Set NodeName) -> m a -> m a
|
|
forall (m :: * -> *) a b.
|
|
MonadBuild m =>
|
|
Lens' GraphState a -> (a -> a) -> m b -> m b
|
|
</span><a href="TensorFlow.Build.html#withStateLens"><span class="hs-identifier hs-var">withStateLens</span></a></span><span> </span><span class="annot"><span class="annottext">Lens GraphState GraphState (Set NodeName) (Set NodeName)
|
|
</span><a href="TensorFlow.Build.html#defaultControlInputs"><span class="hs-identifier hs-var">defaultControlInputs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Set NodeName -> Set NodeName -> Set NodeName
|
|
forall a. Semigroup a => a -> a -> a
|
|
</span><span class="hs-operator hs-var"><></span></span><span> </span><span class="annot"><span class="annottext">Set NodeName
|
|
</span><a href="#local-6989586621679165301"><span class="hs-identifier hs-var">nodes</span></a></span><span class="hs-special">)</span><span>
|
|
</span><span id="line-336"></span></pre></body></html> |