Browse Source

test GpuLeakByCNN.

tags/keras_v0.3.0
Oceania2018 4 years ago
parent
commit
cca2111a17
4 changed files with 23 additions and 12 deletions
  1. +2
    -1
      src/TensorFlowNET.Core/Functions/TapeGradientFunctions.cs
  2. +11
    -10
      src/TensorFlowNet.Benchmarks/Leak/GpuLeakByCNN.cs
  3. +3
    -0
      src/TensorFlowNet.Benchmarks/Program.cs
  4. +7
    -1
      src/TensorFlowNet.Benchmarks/Tensorflow.Benchmark.csproj

+ 2
- 1
src/TensorFlowNET.Core/Functions/TapeGradientFunctions.cs View File

@@ -97,7 +97,8 @@ namespace Tensorflow.Functions
.ToArray();
foreach(var capture in captures_from_forward)
{
_func_graph.Outputs.Add(capture);
if (!_func_graph.Outputs.Contains(capture))
_func_graph.Outputs.Add(capture);
}

var forward_function_name = $"{_FORWARD_PREFIX}_{ops.uid()}";


+ 11
- 10
src/TensorFlowNet.Benchmarks/Leak/GpuLeakByCNN.cs View File

@@ -6,14 +6,15 @@ using NumSharp;
using Tensorflow.Keras;
using static Tensorflow.Binding;
using static Tensorflow.KerasApi;
using BenchmarkDotNet.Attributes;

namespace Tensorflow.Benchmark.Leak
{
class GpuLeakByCNN
public class GpuLeakByCNN
{
protected static LayersApi layers = new LayersApi();
public static void Test()
[Benchmark]
public void Run()
{
int num = 50, width = 64, height = 64;
// if width = 128, height = 128, the exception occurs faster
@@ -29,16 +30,16 @@ namespace Tensorflow.Benchmark.Leak

tf.enable_eager_execution();

var inputss = keras.Input((height, width, 3));
var inputs = keras.Input((height, width, 3));

var inputs = layers.Conv2D(32, (3, 3), activation: keras.activations.Relu).Apply(inputss);
inputs = layers.MaxPooling2D((2, 2)).Apply(inputs);
var layer = layers.Conv2D(32, (3, 3), activation: keras.activations.Relu).Apply(inputs);
layer = layers.MaxPooling2D((2, 2)).Apply(layer);

inputs = layers.Flatten().Apply(inputs);
layer = layers.Flatten().Apply(layer);

var outputs = layers.Dense(10).Apply(inputs);
var outputs = layers.Dense(10).Apply(layer);

var model = keras.Model(inputss, outputs, "gpuleak");
var model = keras.Model(inputs, outputs, "gpuleak");

model.summary();

@@ -46,7 +47,7 @@ namespace Tensorflow.Benchmark.Leak
optimizer: keras.optimizers.RMSprop(),
metrics: new[] { "accuracy" });

model.fit(inputImages, outLables, epochs: 200);
model.fit(inputImages, outLables, batch_size: 1, epochs: 200);
}
}
}

+ 3
- 0
src/TensorFlowNet.Benchmarks/Program.cs View File

@@ -2,6 +2,7 @@
using BenchmarkDotNet.Running;
using System;
using System.Reflection;
using Tensorflow.Benchmark.Leak;

namespace TensorFlowBenchmark
{
@@ -9,6 +10,8 @@ namespace TensorFlowBenchmark
{
static void Main(string[] args)
{
new GpuLeakByCNN().Run();

if (args?.Length > 0)
{
for (int i = 0; i < args.Length; i++)


+ 7
- 1
src/TensorFlowNet.Benchmarks/Tensorflow.Benchmark.csproj View File

@@ -23,13 +23,19 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>

<ItemGroup>
<Compile Remove="BenchmarkDotNet.Artifacts\**" />
<EmbeddedResource Remove="BenchmarkDotNet.Artifacts\**" />
<None Remove="BenchmarkDotNet.Artifacts\**" />
</ItemGroup>

<ItemGroup>
<None Remove="tensorflow.dll" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.12.1" />
<PackageReference Include="SciSharp.TensorFlow.Redist" Version="2.3.1" />
<PackageReference Include="SciSharp.TensorFlow.Redist-Windows-GPU" Version="2.3.1" />
</ItemGroup>

<ItemGroup>


Loading…
Cancel
Save