Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

NotificationsYou must be signed in to change notification settings

SciSharp/Keras.NET

Repository files navigation

Logo

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.

Keras.NET is using:

Prerequisite

  • 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.

Nuget

Install from nuget:https://www.nuget.org/packages/Keras.NET

dotnet add package Keras.NET

Example with XOR sample (C#)

//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:

MNIST CNN Example (C#)

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.

Documentation

https://scisharp.github.io/Keras.NET/

SciSharp

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

Stars

Watchers

Forks


[8]ページ先頭

©2009-2025 Movatter.jp