|
|
|
@@ -31,55 +31,53 @@ namespace TensorFlowNET.Examples |
|
|
|
{ |
|
|
|
var errors = new List<string>(); |
|
|
|
var success = new List<string>(); |
|
|
|
var disabled = new List<string>(); |
|
|
|
var examples = Assembly.GetEntryAssembly().GetTypes() |
|
|
|
.Where(x => x.GetInterfaces().Contains(typeof(IExample))) |
|
|
|
.Select(x => (IExample)Activator.CreateInstance(x)) |
|
|
|
.Where(x => x.Enabled) |
|
|
|
.OrderBy(x => x.Name) |
|
|
|
.ToArray(); |
|
|
|
|
|
|
|
Console.WriteLine($"TensorFlow v{tf.VERSION}", Color.Yellow); |
|
|
|
Console.WriteLine(Environment.OSVersion.ToString(), Color.Yellow); |
|
|
|
Console.WriteLine($"TensorFlow Binary v{tf.VERSION}", Color.Yellow); |
|
|
|
Console.WriteLine($"TensorFlow.NET v{Assembly.GetAssembly(typeof(TF_DataType)).GetName().Version}", Color.Yellow); |
|
|
|
|
|
|
|
for (var i = 0; i < examples.Length; i++) |
|
|
|
Console.WriteLine($"[{i}]: {examples[i].Name}"); |
|
|
|
Console.Write($"Choose one example to run, hit [Enter] to run all: ", Color.Yellow); |
|
|
|
var key = Console.ReadLine(); |
|
|
|
|
|
|
|
var sw = new Stopwatch(); |
|
|
|
foreach (IExample example in examples) |
|
|
|
for (var i = 0; i < examples.Length; i++) |
|
|
|
{ |
|
|
|
if (args.Length > 0 && !args.Contains(example.Name)) |
|
|
|
continue; |
|
|
|
if (i.ToString() != key && key != "") continue; |
|
|
|
|
|
|
|
var example = examples[i]; |
|
|
|
Console.WriteLine($"{DateTime.UtcNow} Starting {example.Name}", Color.White); |
|
|
|
|
|
|
|
try |
|
|
|
{ |
|
|
|
if (example.Enabled || args.Length > 0) // if a specific example was specified run it, regardless of enabled value |
|
|
|
{ |
|
|
|
sw.Restart(); |
|
|
|
bool isSuccess = example.Run(); |
|
|
|
sw.Stop(); |
|
|
|
sw.Restart(); |
|
|
|
bool isSuccess = example.Run(); |
|
|
|
sw.Stop(); |
|
|
|
|
|
|
|
if (isSuccess) |
|
|
|
success.Add($"Example: {example.Name} in {sw.Elapsed.TotalSeconds}s"); |
|
|
|
else |
|
|
|
errors.Add($"Example: {example.Name} in {sw.Elapsed.TotalSeconds}s"); |
|
|
|
} |
|
|
|
if (isSuccess) |
|
|
|
success.Add($"Example: {example.Name} in {sw.Elapsed.TotalSeconds}s"); |
|
|
|
else |
|
|
|
{ |
|
|
|
disabled.Add($"Example: {example.Name} in {sw.ElapsedMilliseconds}ms"); |
|
|
|
} |
|
|
|
errors.Add($"Example: {example.Name} in {sw.Elapsed.TotalSeconds}s"); |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
errors.Add($"Example: {example.Name}"); |
|
|
|
Console.WriteLine(ex); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Console.WriteLine($"{DateTime.UtcNow} Completed {example.Name}", Color.White); |
|
|
|
} |
|
|
|
|
|
|
|
success.ForEach(x => Console.WriteLine($"{x} is OK!", Color.Green)); |
|
|
|
disabled.ForEach(x => Console.WriteLine($"{x} is Disabled!", Color.Tan)); |
|
|
|
errors.ForEach(x => Console.WriteLine($"{x} is Failed!", Color.Red)); |
|
|
|
|
|
|
|
Console.Write("Please [Enter] to quit."); |
|
|
|
Console.ReadLine(); |
|
|
|
} |
|
|
|
} |
|
|
|
|