|
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using Tensorflow.NumPy;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Tensorflow;
- using static Tensorflow.Binding;
- using static Tensorflow.KerasApi;
- using Tensorflow.Keras;
- using Tensorflow.Keras.ArgsDefinition;
- using Tensorflow.Keras.Engine;
- using Tensorflow.Keras.Layers;
- using Tensorflow.Keras.Losses;
- using Tensorflow.Keras.Metrics;
- using Tensorflow.Keras.Optimizers;
- using Tensorflow.Operations;
-
- namespace TensorFlowNET.Keras.UnitTest;
-
- public static class AutoGraphExtension
- {
-
- }
-
- [TestClass]
- public class SaveTest
- {
- [TestMethod]
- public void Test()
- {
- var inputs = new KerasInterface().Input((28, 28, 1));
- var x = new Flatten(new FlattenArgs()).Apply(inputs);
- x = new Dense(new DenseArgs() { Units = 100, Activation = tf.nn.relu }).Apply(x);
- x = new LayersApi().Dense(units: 10).Apply(x);
- var outputs = new LayersApi().Softmax(axis: 1).Apply(x);
- var model = new KerasInterface().Model(inputs, outputs);
-
- model.compile(new Adam(0.001f), new LossesApi().SparseCategoricalCrossentropy(), new string[]{"accuracy"});
-
- var g = ops.get_default_graph();
-
- var data_loader = new MnistModelLoader();
- var num_epochs = 1;
- var batch_size = 50;
-
- var dataset = data_loader.LoadAsync(new ModelLoadSetting
- {
- TrainDir = "mnist",
- OneHot = false,
- ValidationSize = 50000,
- }).Result;
-
- model.fit(dataset.Train.Data, dataset.Train.Labels, batch_size, num_epochs);
-
- model.save("C:\\Work\\tf.net\\tf_test\\tf.net.model", save_format:"pb");
- }
-
- [TestMethod]
- public void Temp()
- {
- var graph = new Graph();
- var g = graph.as_default();
- //var input_tensor = array_ops.placeholder(TF_DataType.TF_FLOAT, new int[] { 1 }, "test_string_tensor");
- var input_tensor = tf.placeholder(tf.int32, new int[] { 1 }, "aa");
- var wrapped_func = tf.autograph.to_graph(func);
- var res = wrapped_func(input_tensor);
- g.Exit();
- }
-
- private Tensor func(Tensor tensor)
- {
- return gen_ops.neg(tensor);
- //return array_ops.identity(tensor);
- //tf.device("cpu:0");
- //using (ops.control_dependencies(new object[] { res.op }))
- //{
- // return array_ops.identity(tensor);
- //}
- }
- }
|