- Notifications
You must be signed in to change notification settings - Fork130
Keras.NET is a high-level neural networks API for C# and F#, with Python Binding and capable of running on top of TensorFlow, CNTK, or Theano.
License
SciSharp/Keras.NET
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Keras.NET is a high-level neural networks API for C# and F# via a Python binding and capable of running on top of TensorFlow, CNTK, or Theano. It was developed with a focus on enabling fast experimentation. Being able to go from idea to result with the least possible delay is key to doing good research.
Use Keras if you need a deep learning library that:
Allows for easy and fast prototyping (through user friendliness, modularity, and extensibility).
Supports both convolutional networks and recurrent networks, as well as combinations of the two.
Runs seamlessly on CPU and GPU.
Python 3.7 or 3.8, Link:https://www.python.org/downloads/
Install keras,numpy and one of the backends (Tensorflow/CNTK/Theano). Keras is now bundled with Tensorflow 2.0, so the easiest way to install Keras and Tensorflow at the same time is to simply installTensorflow 2.0.
Install from nuget:https://www.nuget.org/packages/Keras.NET
dotnet add package Keras.NET//Load train dataNDarrayx=np.array(newfloat[,]{{0,0},{0,1},{1,0},{1,1}});NDarrayy=np.array(newfloat[]{0,1,1,0});//Build sequential modelvarmodel=newSequential();model.Add(newDense(32,activation:"relu",input_shape:newShape(2)));model.Add(newDense(64,activation:"relu"));model.Add(newDense(1,activation:"sigmoid"));//Compile and trainmodel.Compile(optimizer:"sgd",loss:"binary_crossentropy",metrics:newstring[]{"accuracy"});model.Fit(x,y,batch_size:2,epochs:1000,verbose:1);//Save model and weightsstringjson=model.ToJson();File.WriteAllText("model.json",json);model.SaveWeight("model.h5");//Load model and weightvarloaded_model=Sequential.ModelFromJson(File.ReadAllText("model.json"));loaded_model.LoadWeight("model.h5");
Output:
Python example taken from:https://keras.io/examples/mnist_cnn/
intbatch_size=128;intnum_classes=10;intepochs=12;// input image dimensionsintimg_rows=28,img_cols=28;Shapeinput_shape=null;// the data, split between train and test setsvar((x_train,y_train),(x_test,y_test))=MNIST.LoadData();if(Backend.ImageDataFormat()=="channels_first"){x_train=x_train.reshape(x_train.shape[0],1,img_rows,img_cols);x_test=x_test.reshape(x_test.shape[0],1,img_rows,img_cols);input_shape=(1,img_rows,img_cols);}else{x_train=x_train.reshape(x_train.shape[0],img_rows,img_cols,1);x_test=x_test.reshape(x_test.shape[0],img_rows,img_cols,1);input_shape=(img_rows,img_cols,1);}x_train=x_train.astype(np.float32);x_test=x_test.astype(np.float32);x_train/=255;x_test/=255;Console.WriteLine($"x_train shape:{x_train.shape}");Console.WriteLine($"{x_train.shape[0]} train samples");Console.WriteLine($"{x_test.shape[0]} test samples");// convert class vectors to binary class matricesy_train=Util.ToCategorical(y_train,num_classes);y_test=Util.ToCategorical(y_test,num_classes);// Build CNN modelvarmodel=newSequential();model.Add(newConv2D(32,kernel_size:(3,3).ToTuple(),activation:"relu",input_shape:input_shape));model.Add(newConv2D(64,(3,3).ToTuple(),activation:"relu"));model.Add(newMaxPooling2D(pool_size:(2,2).ToTuple()));model.Add(newDropout(0.25));model.Add(newFlatten());model.Add(newDense(128,activation:"relu"));model.Add(newDropout(0.5));model.Add(newDense(num_classes,activation:"softmax"));model.Compile(loss:"categorical_crossentropy",optimizer:newAdadelta(),metrics:newstring[]{"accuracy"});model.Fit(x_train,y_train,batch_size:batch_size,epochs:epochs,verbose:1,validation_data:newNDarray[]{x_test,y_test});varscore=model.Evaluate(x_test,y_test,verbose:0);Console.WriteLine($"Test loss:{score[0]}");Console.WriteLine($"Test accuracy:{score[1]}");
Output
Reached 98% accuracy within 3 epoches.
About
Keras.NET is a high-level neural networks API for C# and F#, with Python Binding and capable of running on top of TensorFlow, CNTK, or Theano.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.
