diff --git a/README.md b/README.md index 7021f15a..13cb4f63 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,16 @@ TensorFlow.NET is a member project of [SciSharp STACK](https://github.com/SciSha ![tensors_flowing](docs/assets/tensors_flowing.gif) +### Why should we use TensorFlow.NET ? + +`SciSharp STASK`'s mission is to create a zero learning curve on the .NET based technology stack Machine Learning tool library. Let's take a look at a comparison picture and you can see why TensorFlow.NET is the tool that is the most comfortable for you. + +![pythn vs csharp](docs/assets/syntax-comparision.png) + +SciSharp's philosophy allows a large number of machine learning code written in python to be quickly migrated to .NET, allowing a large number of .NET Developers to use more updated models. + ### How to use + Install TensorFlow.NET through NuGet. ```sh PM> Install-Package TensorFlow.NET diff --git a/docs/assets/syntax-comparision.png b/docs/assets/syntax-comparision.png new file mode 100644 index 00000000..d42b5cb9 Binary files /dev/null and b/docs/assets/syntax-comparision.png differ diff --git a/docs/source/Attribute.md b/docs/source/Attribute.md deleted file mode 100644 index 713fc989..00000000 --- a/docs/source/Attribute.md +++ /dev/null @@ -1,2 +0,0 @@ -# Chapter. Attribute - diff --git a/docs/source/NameScope.md b/docs/source/NameScope.md deleted file mode 100644 index dea4a676..00000000 --- a/docs/source/NameScope.md +++ /dev/null @@ -1,4 +0,0 @@ -# Chapter. Name Scoping - -Typical TensorFlow graphs can have many thousands of nodes--far too many to see easily all at once, or even to lay out using standard graph tools. To simplify, variable names can be scoped and the visualization uses this information to define a hierarchy on the nodes in the graph. By default, only the top of this hierarchy is shown. Here is an example that defines three operations under the `hidden` name scope using `tf.name_scope`: - diff --git a/docs/source/Operation.md b/docs/source/Operation.md index 651cf10f..67a25a37 100644 --- a/docs/source/Operation.md +++ b/docs/source/Operation.md @@ -1,2 +1,3 @@ # Chapter. Operation +`Operation` represents a `Graph` node that performs computation on tensors. An operation is a `Node` in a `Graph` that takes zero or more `Tensor`s (produced by other Operations in the Graph) as input, and produces zero or more Tensors as output. \ No newline at end of file diff --git a/docs/source/Preface.md b/docs/source/Preface.md index 991af373..c924c280 100644 --- a/docs/source/Preface.md +++ b/docs/source/Preface.md @@ -18,12 +18,24 @@ TensorFlow是一个用于机器学习的开源项目,尤其适用于深度学 In order to avoid confusion, the unique classes defined in TensorFlow are not translated in this book. For example, Tensor, Graph, Shape will retain the English name. -为了避免混淆,本书中对TensorFlow中定义的特有类不进行翻译,比如Tensor, Graph, Shape这些词都会保留英文名称。 +为了避免混淆,本书中对TensorFlow中定义的特有类不进行翻译,比如Tensor, Graph, Session, Shape这些词都会保留英文名称。 -Terminology: +Terminology 术语: TF: Google TensorFlow -TF.NET: TensorFlow.NET \ No newline at end of file +TF.NET: TensorFlow.NET + +Graph: 计算图 + +Session: 会话 + +Variable: 变量 + +Tensor: 张量 + +Operation: 操作 + +Node: 节点 \ No newline at end of file diff --git a/docs/source/Session.md b/docs/source/Session.md index d79d72ee..ffa5882e 100644 --- a/docs/source/Session.md +++ b/docs/source/Session.md @@ -2,9 +2,13 @@ TensorFlow **session** runs parts of the graph across a set of local and remote devices. A session allows to execute graphs or part of graphs. It allocates resources (on one or more machines) for that and holds the actual values of intermediate results and variables. +TensorFlow **Session** 运行预定义的计算图,并且支持跨设备运行和分配GPU。Session可以运行整个计算图或者图的一部分,这样做的好处是对开发模型来话很方便,不需要每次都执行整个图。会话还负责当前计算图的内存分配,保留和传递中间结果。 + ### Running Computations in a Session -Let's complete the example in last chapter. +Let's complete the example in last chapter. To run any of the operations, we need to create a session for that graph. The session will also allocate memory to store the current value of the variable. + +让我们完成上一章的例子,在那个例子里我们只是定义了一个图的结构。为了运行这个图,我们需要创建一个Session来根据图定义来分配资源运行它。 ```csharp with(tf.Graph(), graph => @@ -22,3 +26,6 @@ with(tf.Graph(), graph => }); ``` +The value of our variables is only valid within one session. If we try to get the value in another session. TensorFlow will raise an error of `Attempting to use uninitialized value foo`. Of course, we can use the graph in more than one session, because session copies graph definition to new memory area. We just have to initialize the variables again. The values in the new session will be completely independent from the previous one. + +变量值只会在一个Session里有效。如果我们试图从本Session来访问另一个Session创建的变量和值,就会得到一个`变量未初始化`的错误提示。当然,我们能从多个Session运行同一个计算图,因为计算图只是一个定义,Session初始化的时候会复制整图的定义到新的内存空间里。所以每个Session里的变量值是互相隔离的。 \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index 2d84abdb..74edba86 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -22,8 +22,6 @@ Welcome to TensorFlow.NET's documentation! Graph Session Operation - Attribute - NameScope ControlDependency Gradient Train