From 19dcc335b1fac5848c6f0baae774ef371726bf74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20=C3=85ngb=C3=A4ck?= Date: Wed, 16 Dec 2020 10:50:50 +0100 Subject: [PATCH] Fixed Keras c# example so it works --- README.md | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 1e53d2ab..4f8f62ee 100644 --- a/README.md +++ b/README.md @@ -112,46 +112,40 @@ Run this example in [Jupyter Notebook](https://github.com/SciSharp/SciSharpCube) Toy version of `ResNet` in `Keras` functional API: ```csharp +var layers = new LayersApi(); // input layer var inputs = keras.Input(shape: (32, 32, 3), name: "img"); - // convolutional layer var x = layers.Conv2D(32, 3, activation: "relu").Apply(inputs); x = layers.Conv2D(64, 3, activation: "relu").Apply(x); var block_1_output = layers.MaxPooling2D(3).Apply(x); - x = layers.Conv2D(64, 3, activation: "relu", padding: "same").Apply(block_1_output); x = layers.Conv2D(64, 3, activation: "relu", padding: "same").Apply(x); -var block_2_output = layers.add(x, block_1_output); - +var block_2_output = layers.Add().Apply(new Tensors(x, block_1_output)); x = layers.Conv2D(64, 3, activation: "relu", padding: "same").Apply(block_2_output); x = layers.Conv2D(64, 3, activation: "relu", padding: "same").Apply(x); -var block_3_output = layers.add(x, block_2_output); - +var block_3_output = layers.Add().Apply(new Tensors(x, block_2_output)); x = layers.Conv2D(64, 3, activation: "relu").Apply(block_3_output); x = layers.GlobalAveragePooling2D().Apply(x); x = layers.Dense(256, activation: "relu").Apply(x); x = layers.Dropout(0.5f).Apply(x); - // output layer var outputs = layers.Dense(10).Apply(x); - // build keras model -model = keras.Model(inputs, outputs, name: "toy_resnet"); +var model = keras.Model(inputs, outputs, name: "toy_resnet"); model.summary(); - // compile keras model in tensorflow static graph model.compile(optimizer: keras.optimizers.RMSprop(1e-3f), - loss: keras.losses.CategoricalCrossentropy(from_logits: true), - metrics: new[] { "acc" }); - + loss: keras.losses.CategoricalCrossentropy(from_logits: true), + metrics: new[] { "acc" }); // prepare dataset var ((x_train, y_train), (x_test, y_test)) = keras.datasets.cifar10.load_data(); - +x_train = x_train / 255.0f; +y_train = np_utils.to_categorical(y_train, 10); // training -model.fit(x_train[new Slice(0, 1000)], y_train[new Slice(0, 1000)], - batch_size: 64, - epochs: 10, +model.fit(x_train[new Slice(0, 2000)], y_train[new Slice(0, 2000)], + batch_size: 64, + epochs: 10, validation_split: 0.2f); ``` @@ -260,4 +254,4 @@ WeChat Sponsor 微信打赏: TensorFlow.NET is a part of [SciSharp STACK](https://scisharp.github.io/SciSharp/)
- + \ No newline at end of file