|
|
@@ -131,7 +131,7 @@ using static Tensorflow.KerasApi; |
|
|
|
using Tensorflow; |
|
|
|
using Tensorflow.NumPy; |
|
|
|
|
|
|
|
var layers = new LayersApi(); |
|
|
|
var layers = keras.layers; |
|
|
|
// input layer |
|
|
|
var inputs = keras.Input(shape: (32, 32, 3), name: "img"); |
|
|
|
// convolutional layer |
|
|
@@ -155,17 +155,19 @@ 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), |
|
|
|
loss: keras.losses.SparseCategoricalCrossentropy(from_logits: true), |
|
|
|
metrics: new[] { "acc" }); |
|
|
|
// prepare dataset |
|
|
|
var ((x_train, y_train), (x_test, y_test)) = keras.datasets.cifar10.load_data(); |
|
|
|
// normalize the input |
|
|
|
x_train = x_train / 255.0f; |
|
|
|
y_train = np_utils.to_categorical(y_train, 10); |
|
|
|
// training |
|
|
|
model.fit(x_train[new Slice(0, 2000)], y_train[new Slice(0, 2000)], |
|
|
|
batch_size: 64, |
|
|
|
epochs: 10, |
|
|
|
validation_split: 0.2f); |
|
|
|
batch_size: 64, |
|
|
|
epochs: 10, |
|
|
|
validation_split: 0.2f); |
|
|
|
// save the model |
|
|
|
model.save("./toy_resnet_model"); |
|
|
|
``` |
|
|
|
|
|
|
|
The F# example for linear regression is available [here](docs/Example-fsharp.md). |
|
|
|