Skip to content

Commit cca2111

Browse files
committed
test GpuLeakByCNN.
1 parent 555cc6c commit cca2111

File tree

4 files changed

+23
-12
lines changed

4 files changed

+23
-12
lines changed

src/TensorFlowNET.Core/Functions/TapeGradientFunctions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ public void Record(Tensors flat_outputs, Tensors inference_args)
9797
.ToArray();
9898
foreach(var capture in captures_from_forward)
9999
{
100-
_func_graph.Outputs.Add(capture);
100+
if (!_func_graph.Outputs.Contains(capture))
101+
_func_graph.Outputs.Add(capture);
101102
}
102103

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

src/TensorFlowNet.Benchmarks/Leak/GpuLeakByCNN.cs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
using Tensorflow.Keras;
77
using static Tensorflow.Binding;
88
using static Tensorflow.KerasApi;
9+
using BenchmarkDotNet.Attributes;
910

1011
namespace Tensorflow.Benchmark.Leak
1112
{
12-
class GpuLeakByCNN
13+
public class GpuLeakByCNN
1314
{
1415
protected static LayersApi layers = new LayersApi();
15-
16-
public static void Test()
16+
[Benchmark]
17+
public void Run()
1718
{
1819
int num = 50, width = 64, height = 64;
1920
// if width = 128, height = 128, the exception occurs faster
@@ -29,24 +30,24 @@ public static void Test()
2930

3031
tf.enable_eager_execution();
3132

32-
var inputss = keras.Input((height, width, 3));
33+
var inputs = keras.Input((height, width, 3));
3334

34-
var inputs = layers.Conv2D(32, (3, 3), activation: keras.activations.Relu).Apply(inputss);
35-
inputs = layers.MaxPooling2D((2, 2)).Apply(inputs);
35+
var layer = layers.Conv2D(32, (3, 3), activation: keras.activations.Relu).Apply(inputs);
36+
layer = layers.MaxPooling2D((2, 2)).Apply(layer);
3637

37-
inputs = layers.Flatten().Apply(inputs);
38+
layer = layers.Flatten().Apply(layer);
3839

39-
var outputs = layers.Dense(10).Apply(inputs);
40+
var outputs = layers.Dense(10).Apply(layer);
4041

41-
var model = keras.Model(inputss, outputs, "gpuleak");
42+
var model = keras.Model(inputs, outputs, "gpuleak");
4243

4344
model.summary();
4445

4546
model.compile(loss: keras.losses.SparseCategoricalCrossentropy(from_logits: true),
4647
optimizer: keras.optimizers.RMSprop(),
4748
metrics: new[] { "accuracy" });
4849

49-
model.fit(inputImages, outLables, epochs: 200);
50+
model.fit(inputImages, outLables, batch_size: 1, epochs: 200);
5051
}
5152
}
5253
}

src/TensorFlowNet.Benchmarks/Program.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22
using BenchmarkDotNet.Running;
33
using System;
44
using System.Reflection;
5+
using Tensorflow.Benchmark.Leak;
56

67
namespace TensorFlowBenchmark
78
{
89
class Program
910
{
1011
static void Main(string[] args)
1112
{
13+
new GpuLeakByCNN().Run();
14+
1215
if (args?.Length > 0)
1316
{
1417
for (int i = 0; i < args.Length; i++)

src/TensorFlowNet.Benchmarks/Tensorflow.Benchmark.csproj

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,19 @@
2323
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
2424
</PropertyGroup>
2525

26+
<ItemGroup>
27+
<Compile Remove="BenchmarkDotNet.Artifacts\**" />
28+
<EmbeddedResource Remove="BenchmarkDotNet.Artifacts\**" />
29+
<None Remove="BenchmarkDotNet.Artifacts\**" />
30+
</ItemGroup>
31+
2632
<ItemGroup>
2733
<None Remove="tensorflow.dll" />
2834
</ItemGroup>
2935

3036
<ItemGroup>
3137
<PackageReference Include="BenchmarkDotNet" Version="0.12.1" />
32-
<PackageReference Include="SciSharp.TensorFlow.Redist" Version="2.3.1" />
38+
<PackageReference Include="SciSharp.TensorFlow.Redist-Windows-GPU" Version="2.3.1" />
3339
</ItemGroup>
3440

3541
<ItemGroup>

0 commit comments

Comments
 (0)