Browse Source

add SummaryToEventTransformer, EventProto, SummaryProto. #248

tags/v0.9
Oceania2018 6 years ago
parent
commit
1fca618958
17 changed files with 3669 additions and 30 deletions
  1. +2
    -2
      src/TensorFlowNET.Core/APIs/tf.summary.cs
  2. +1597
    -0
      src/TensorFlowNET.Core/Protobuf/Event.cs
  3. +30
    -28
      src/TensorFlowNET.Core/Protobuf/README.md
  4. +1949
    -0
      src/TensorFlowNET.Core/Protobuf/Summary.cs
  5. +21
    -0
      src/TensorFlowNET.Core/Summaries/EventFileWriter.cs
  6. +19
    -0
      src/TensorFlowNET.Core/Summaries/EventsWriter.cs
  7. +24
    -0
      src/TensorFlowNET.Core/Summaries/FileWriter.cs
  8. +7
    -0
      src/TensorFlowNET.Core/Summaries/Summary.cs
  9. +13
    -0
      src/TensorFlowNET.Core/Summaries/SummaryToEventTransformer.cs
  10. +0
    -0
      test/TensorFlowNET.Examples/BasicModels/KMeansClustering.cs
  11. +0
    -0
      test/TensorFlowNET.Examples/BasicModels/LinearRegression.cs
  12. +0
    -0
      test/TensorFlowNET.Examples/BasicModels/LogisticRegression.cs
  13. +0
    -0
      test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs
  14. +0
    -0
      test/TensorFlowNET.Examples/BasicModels/NearestNeighbor.cs
  15. +0
    -0
      test/TensorFlowNET.Examples/BasicModels/NeuralNetXor.cs
  16. +1
    -0
      test/TensorFlowNET.Examples/ImageProcess/RetrainImageClassifier.cs
  17. +6
    -0
      test/TensorFlowNET.Examples/TensorFlowNET.Examples.csproj

+ 2
- 2
src/TensorFlowNET.Core/APIs/tf.summary.cs View File

@@ -2,13 +2,13 @@
using System.Collections.Generic;
using System.Text;
using Tensorflow.IO;
using Tensorflow.Summaries;

namespace Tensorflow
{
public static partial class tf
{
public static Summary summary = new Summary();
public static Summaries.Summary summary = new Summaries.Summary();

public static Tensor scalar(string name, Tensor tensor)
=> summary.scalar(name, tensor);
}


+ 1597
- 0
src/TensorFlowNET.Core/Protobuf/Event.cs
File diff suppressed because it is too large
View File


+ 30
- 28
src/TensorFlowNET.Core/Protobuf/README.md View File

@@ -8,33 +8,35 @@ set SRC_DIR=D:/Projects/tensorflow
set DST_DIR=D:/Projects/TensorFlow.NET/src/TensorFlowNET.Core/Protobuf

protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/resource_handle.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/tensor_shape.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/types.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/tensor.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/attr_value.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/node_def.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/versions.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/function.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/graph.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/variable.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/cost_graph.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/step_stats.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/allocation_description.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/tensor_description.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/api_def.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/device_attributes.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/graph_transfer_info.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/kernel_def.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/iterator.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/log_memory.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/tensor_slice.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/saver.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/meta_graph.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/cluster.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/config.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/debug.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/rewriter_config.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/control_flow.proto
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/python/training/checkpoint_state.proto
... tensorflow/core/framework/tensor_shape.proto
... tensorflow/core/framework/types.proto
... tensorflow/core/framework/tensor.proto
... tensorflow/core/framework/attr_value.proto
... tensorflow/core/framework/node_def.proto
... tensorflow/core/framework/versions.proto
... tensorflow/core/framework/function.proto
... tensorflow/core/framework/graph.proto
... tensorflow/core/framework/variable.proto
... tensorflow/core/framework/cost_graph.proto
... tensorflow/core/framework/step_stats.proto
... tensorflow/core/framework/allocation_description.proto
... tensorflow/core/framework/tensor_description.proto
... tensorflow/core/framework/api_def.proto
... tensorflow/core/framework/device_attributes.proto
... tensorflow/core/framework/graph_transfer_info.proto
... tensorflow/core/framework/kernel_def.proto
... tensorflow/core/framework/iterator.proto
... tensorflow/core/framework/log_memory.proto
... tensorflow/core/framework/tensor_slice.proto
... tensorflow/core/framework/summary.proto
... tensorflow/core/protobuf/saver.proto
... tensorflow/core/protobuf/meta_graph.proto
... tensorflow/core/protobuf/cluster.proto
... tensorflow/core/protobuf/config.proto
... tensorflow/core/protobuf/debug.proto
... tensorflow/core/protobuf/rewriter_config.proto
... tensorflow/core/protobuf/control_flow.proto
... tensorflow/core/util/event.proto
... tensorflow/python/training/checkpoint_state.proto
```


+ 1949
- 0
src/TensorFlowNET.Core/Protobuf/Summary.cs
File diff suppressed because it is too large
View File


+ 21
- 0
src/TensorFlowNET.Core/Summaries/EventFileWriter.cs View File

@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace Tensorflow.Summaries
{
public class EventFileWriter
{
string _logdir;
Queue<int> _event_queue;

public EventFileWriter(string logdir, int max_queue = 10, int flush_secs= 120,
string filename_suffix = null)
{
_logdir = logdir;
Directory.CreateDirectory(_logdir);
_event_queue = new Queue<int>(max_queue);
}
}
}

+ 19
- 0
src/TensorFlowNET.Core/Summaries/EventsWriter.cs View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace Tensorflow.Summaries
{
public class EventsWriter
{
public EventsWriter(string file_prefix)
{

}

public void _WriteSerializedEvent(byte[] event_str)
{

}
}
}

+ 24
- 0
src/TensorFlowNET.Core/Summaries/FileWriter.cs View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace Tensorflow.Summaries
{
/// <summary>
/// Writes `Summary` protocol buffers to event files.
/// </summary>
public class FileWriter : SummaryToEventTransformer
{
EventFileWriter event_writer;

public FileWriter(string logdir, Graph graph,
int max_queue = 10, int flush_secs = 120, string filename_suffix = null,
Session session = null)
{
if(session == null)
{
event_writer = new EventFileWriter(logdir, max_queue, flush_secs, filename_suffix);
}
}
}
}

+ 7
- 0
src/TensorFlowNET.Core/Summaries/Summary.cs View File

@@ -8,6 +8,13 @@ namespace Tensorflow.Summaries
{
public class Summary
{
public FileWriter FileWriter(string logdir, Graph graph,
int max_queue = 10, int flush_secs = 120, string filename_suffix = null,
Session session = null)
=> new FileWriter(logdir, graph, max_queue: max_queue,
flush_secs: flush_secs, filename_suffix: filename_suffix,
session: session);

public Tensor merge_all(string key = ops.GraphKeys.SUMMARIES, string scope= null, string name= null)
{
var summary_ops = ops.get_collection(key, scope: scope);


+ 13
- 0
src/TensorFlowNET.Core/Summaries/SummaryToEventTransformer.cs View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace Tensorflow.Summaries
{
/// <summary>
/// Abstractly implements the SummaryWriter API.
/// </summary>
public abstract class SummaryToEventTransformer
{
}
}

test/TensorFlowNET.Examples/Models/KMeansClustering.cs → test/TensorFlowNET.Examples/BasicModels/KMeansClustering.cs View File


test/TensorFlowNET.Examples/Models/LinearRegression.cs → test/TensorFlowNET.Examples/BasicModels/LinearRegression.cs View File


test/TensorFlowNET.Examples/Models/LogisticRegression.cs → test/TensorFlowNET.Examples/BasicModels/LogisticRegression.cs View File


test/TensorFlowNET.Examples/Models/NaiveBayesClassifier.cs → test/TensorFlowNET.Examples/BasicModels/NaiveBayesClassifier.cs View File


test/TensorFlowNET.Examples/Models/NearestNeighbor.cs → test/TensorFlowNET.Examples/BasicModels/NearestNeighbor.cs View File


test/TensorFlowNET.Examples/Models/NeuralNetXor.cs → test/TensorFlowNET.Examples/BasicModels/NeuralNetXor.cs View File


+ 1
- 0
test/TensorFlowNET.Examples/ImageProcess/RetrainImageClassifier.cs View File

@@ -71,6 +71,7 @@ namespace TensorFlowNET.Examples.ImageProcess

// Merge all the summaries and write them out to the summaries_dir
var merged = tf.summary.merge_all();
var train_writer = tf.summary.FileWriter(summaries_dir + "/train", sess.graph);
});

return false;


+ 6
- 0
test/TensorFlowNET.Examples/TensorFlowNET.Examples.csproj View File

@@ -6,6 +6,12 @@
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
</PropertyGroup>

<ItemGroup>
<Compile Remove="python\**" />
<EmbeddedResource Remove="python\**" />
<None Remove="python\**" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Colorful.Console" Version="1.2.9" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />


Loading…
Cancel
Save