diff --git a/TensorFlow.NET.sln b/TensorFlow.NET.sln
index 7f124824..4aae6e0d 100644
--- a/TensorFlow.NET.sln
+++ b/TensorFlow.NET.sln
@@ -13,7 +13,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TensorFlowNET.Utility", "sr
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TensorFlowNET.Visualization", "TensorFlowNET.Visualization\TensorFlowNET.Visualization.csproj", "{4BB2ABD1-635E-41E4-B534-CB5B6A2D754D}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KerasNET.Core", "..\Keras.NET\src\KerasNET.Core\KerasNET.Core.csproj", "{E2F0C39C-D706-4CF5-AE00-81FB447F949D}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NumSharp.Core", "..\NumSharp\src\NumSharp.Core\NumSharp.Core.csproj", "{0AB4662E-7E3C-455F-BF0C-23D56CBE74F3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -41,10 +41,10 @@ Global
{4BB2ABD1-635E-41E4-B534-CB5B6A2D754D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4BB2ABD1-635E-41E4-B534-CB5B6A2D754D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4BB2ABD1-635E-41E4-B534-CB5B6A2D754D}.Release|Any CPU.Build.0 = Release|Any CPU
- {E2F0C39C-D706-4CF5-AE00-81FB447F949D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E2F0C39C-D706-4CF5-AE00-81FB447F949D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E2F0C39C-D706-4CF5-AE00-81FB447F949D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E2F0C39C-D706-4CF5-AE00-81FB447F949D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0AB4662E-7E3C-455F-BF0C-23D56CBE74F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0AB4662E-7E3C-455F-BF0C-23D56CBE74F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0AB4662E-7E3C-455F-BF0C-23D56CBE74F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0AB4662E-7E3C-455F-BF0C-23D56CBE74F3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/TensorFlowNET.Core/APIs/keras.preprocessing.cs b/src/TensorFlowNET.Core/APIs/keras.preprocessing.cs
new file mode 100644
index 00000000..97363bfb
--- /dev/null
+++ b/src/TensorFlowNET.Core/APIs/keras.preprocessing.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Tensorflow.Keras;
+using Tensorflow.Keras.Engine;
+
+namespace Tensorflow
+{
+ public static partial class keras
+ {
+ public static Preprocessing preprocessing => new Preprocessing();
+ public static Sequence sequence = new Sequence();
+ public static Sequential Sequential() => new Sequential();
+ }
+}
diff --git a/src/TensorFlowNET.Core/Keras/Engine/Layer.cs b/src/TensorFlowNET.Core/Keras/Engine/Layer.cs
new file mode 100644
index 00000000..aa53c0ae
--- /dev/null
+++ b/src/TensorFlowNET.Core/Keras/Engine/Layer.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Tensorflow.Keras.Engine
+{
+ ///
+ /// Base layer class.
+ /// A layer is a class implementing common neural networks operations, such
+ /// as convolution, batch norm, etc. These operations require managing weights,
+ /// losses, updates, and inter-layer connectivity.
+ ///
+ public class Layer : CheckpointableBase
+ {
+
+ }
+}
diff --git a/src/TensorFlowNET.Core/Keras/Engine/Model.cs b/src/TensorFlowNET.Core/Keras/Engine/Model.cs
new file mode 100644
index 00000000..a0ad4a53
--- /dev/null
+++ b/src/TensorFlowNET.Core/Keras/Engine/Model.cs
@@ -0,0 +1,10 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Tensorflow.Keras.Engine
+{
+ internal class Model : Network
+ {
+ }
+}
diff --git a/src/TensorFlowNET.Core/Keras/Engine/Network.cs b/src/TensorFlowNET.Core/Keras/Engine/Network.cs
new file mode 100644
index 00000000..6eff46c4
--- /dev/null
+++ b/src/TensorFlowNET.Core/Keras/Engine/Network.cs
@@ -0,0 +1,10 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Tensorflow.Keras.Engine
+{
+ public class Network : Layer
+ {
+ }
+}
diff --git a/src/TensorFlowNET.Core/Keras/Engine/Sequential.cs b/src/TensorFlowNET.Core/Keras/Engine/Sequential.cs
new file mode 100644
index 00000000..d3762bfb
--- /dev/null
+++ b/src/TensorFlowNET.Core/Keras/Engine/Sequential.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Tensorflow.Keras.Engine
+{
+ public class Sequential : Network, IPython
+ {
+ public void Dispose()
+ {
+ throw new NotImplementedException();
+ }
+
+ public void __enter__()
+ {
+ throw new NotImplementedException();
+ }
+
+ public void __exit__()
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/src/TensorFlowNET.Core/Keras/Preprocessing.cs b/src/TensorFlowNET.Core/Keras/Preprocessing.cs
new file mode 100644
index 00000000..81148f58
--- /dev/null
+++ b/src/TensorFlowNET.Core/Keras/Preprocessing.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Tensorflow.Keras
+{
+ public class Preprocessing
+ {
+ public Sequence sequence => new Sequence();
+ }
+}
diff --git a/src/TensorFlowNET.Core/Keras/Sequence.cs b/src/TensorFlowNET.Core/Keras/Sequence.cs
new file mode 100644
index 00000000..02638035
--- /dev/null
+++ b/src/TensorFlowNET.Core/Keras/Sequence.cs
@@ -0,0 +1,77 @@
+using NumSharp.Core;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+
+namespace Tensorflow.Keras
+{
+ public class Sequence
+ {
+ ///
+ /// Pads sequences to the same length.
+ /// https://keras.io/preprocessing/sequence/
+ /// https://faroit.github.io/keras-docs/1.2.0/preprocessing/sequence/
+ ///
+ /// List of lists, where each element is a sequence.
+ /// Int, maximum length of all sequences.
+ /// Type of the output sequences.
+ /// String, 'pre' or 'post':
+ /// String, 'pre' or 'post'
+ /// Float or String, padding value.
+ ///
+ public NDArray pad_sequences(NDArray sequences,
+ int? maxlen = null,
+ string dtype = "int32",
+ string padding = "pre",
+ string truncating = "pre",
+ object value = null)
+ {
+ int[] length = new int[sequences.size];
+ switch (sequences.dtype.Name)
+ {
+ case "Object":
+ for (int i = 0; i < sequences.size; i++)
+ {
+ switch (sequences.Data