forked from SciSharp/TensorFlow.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTensorBenchmark.cs
More file actions
95 lines (82 loc) · 2.08 KB
/
TensorBenchmark.cs
File metadata and controls
95 lines (82 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
using BenchmarkDotNet.Attributes;
using Tensorflow;
using Tensorflow.Eager;
namespace TensorFlowBenchmark
{
[SimpleJob(launchCount: 1, warmupCount: 1, targetCount: 10)]
[MinColumn, MaxColumn, MeanColumn, MedianColumn]
public class TensorBenchmark
{
private double[] data;
[GlobalSetup]
public void Setup()
{
data = new double[100];
}
/*[Benchmark]
public void ScalarTensor()
{
var g = new Graph();
for (int i = 0; i < 100; i++)
{
using (var tensor = new Tensor(17.0))
{
}
}
}
[Benchmark]
public unsafe void TensorFromFixedPtr()
{
var g = new Graph();
for (int i = 0; i < 100; i++)
{
fixed (double* ptr = &data[0])
{
using (var t = new Tensor((IntPtr)ptr, new long[] { data.Length }, tf.float64, 8 * data.Length))
{
}
}
}
}
[Benchmark]
public void TensorFromArray()
{
var g=new Graph();
for (int i = 0; i < 100; i++)
{
using (var tensor = new Tensor(data))
{
}
}
}
[Benchmark]
public void TensorFromNDArray()
{
var g = new Graph();
for (int i = 0; i < 100; i++)
{
using (var tensor = new Tensor(new NDArray(data)))
{
}
}
}*/
[Benchmark]
public void RawTensorV1()
{
var c = new EagerTensor(new float[,]
{
{ 3.0f, 1.0f },
{ 1.0f, 2.0f }
}, "");
}
[Benchmark]
public void RawTensorV2()
{
var c = new EagerTensorV2(new float[,]
{
{ 3.0f, 1.0f },
{ 1.0f, 2.0f }
});
}
}
}