@@ -56,30 +56,32 @@ PM> Install-Package SciSharp.TensorFlow.Redist-Windows-GPU
5656
5757Import TF.NET and Keras API in your project.
5858
59- ``` cs
59+ ``` csharp
6060using static Tensorflow .Binding ;
6161using static Tensorflow .KerasApi ;
62+ using Tensorflow ;
63+ using NumSharp ;
6264```
6365
6466Linear Regression in ` Eager ` mode:
6567
66- ``` c#
68+ ``` csharp
6769// Parameters
6870var training_steps = 1000 ;
6971var learning_rate = 0 . 01 f ;
7072var display_step = 100 ;
7173
7274// Sample data
73- var train_X = np .array (3 . 3 f , 4 . 4 f , 5 . 5 f , 6 . 71 f , 6 . 93 f , 4 . 168 f , 9 . 779 f , 6 . 182 f , 7 . 59 f , 2 . 167 f ,
75+ var X = np .array (3 . 3 f , 4 . 4 f , 5 . 5 f , 6 . 71 f , 6 . 93 f , 4 . 168 f , 9 . 779 f , 6 . 182 f , 7 . 59 f , 2 . 167 f ,
7476 7 . 042 f , 10 . 791 f , 5 . 313 f , 7 . 997 f , 5 . 654 f , 9 . 27 f , 3 . 1 f );
75- var train_Y = np .array (1 . 7 f , 2 . 76 f , 2 . 09 f , 3 . 19 f , 1 . 694 f , 1 . 573 f , 3 . 366 f , 2 . 596 f , 2 . 53 f , 1 . 221 f ,
77+ var Y = np .array (1 . 7 f , 2 . 76 f , 2 . 09 f , 3 . 19 f , 1 . 694 f , 1 . 573 f , 3 . 366 f , 2 . 596 f , 2 . 53 f , 1 . 221 f ,
7678 2 . 827 f , 3 . 465 f , 1 . 65 f , 2 . 904 f , 2 . 42 f , 2 . 94 f , 1 . 3 f );
77- var n_samples = train_X .shape [0 ];
79+ var n_samples = X .shape [0 ];
7880
7981// We can set a fixed init value in order to demo
8082var W = tf .Variable (- 0 . 06 f , name : " weight" );
8183var b = tf .Variable (- 0 . 73 f , name : " bias" );
82- var optimizer = tf .optimizers .SGD (learning_rate );
84+ var optimizer = keras .optimizers .SGD (learning_rate );
8385
8486// Run training for the given number of steps.
8587foreach (var step in range (1 , training_steps + 1 ))
@@ -112,46 +114,40 @@ Run this example in [Jupyter Notebook](https://github.com/SciSharp/SciSharpCube)
112114Toy version of ` ResNet ` in ` Keras ` functional API:
113115
114116``` csharp
117+ var layers = new LayersApi ();
115118// input layer
116119var inputs = keras .Input (shape : (32 , 32 , 3 ), name : " img" );
117-
118120// convolutional layer
119121var x = layers .Conv2D (32 , 3 , activation : " relu" ).Apply (inputs );
120122x = layers .Conv2D (64 , 3 , activation : " relu" ).Apply (x );
121123var block_1_output = layers .MaxPooling2D (3 ).Apply (x );
122-
123124x = layers .Conv2D (64 , 3 , activation : " relu" , padding : " same" ).Apply (block_1_output );
124125x = layers .Conv2D (64 , 3 , activation : " relu" , padding : " same" ).Apply (x );
125- var block_2_output = layers .add (x , block_1_output );
126-
126+ var block_2_output = layers .Add ().Apply (new Tensors (x , block_1_output ));
127127x = layers .Conv2D (64 , 3 , activation : " relu" , padding : " same" ).Apply (block_2_output );
128128x = layers .Conv2D (64 , 3 , activation : " relu" , padding : " same" ).Apply (x );
129- var block_3_output = layers .add (x , block_2_output );
130-
129+ var block_3_output = layers .Add ().Apply (new Tensors (x , block_2_output ));
131130x = layers .Conv2D (64 , 3 , activation : " relu" ).Apply (block_3_output );
132131x = layers .GlobalAveragePooling2D ().Apply (x );
133132x = layers .Dense (256 , activation : " relu" ).Apply (x );
134133x = layers .Dropout (0 . 5 f ).Apply (x );
135-
136134// output layer
137135var outputs = layers .Dense (10 ).Apply (x );
138-
139136// build keras model
140- model = keras .Model (inputs , outputs , name : " toy_resnet" );
137+ var model = keras .Model (inputs , outputs , name : " toy_resnet" );
141138model .summary ();
142-
143139// compile keras model in tensorflow static graph
144140model .compile (optimizer : keras .optimizers .RMSprop (1 e - 3 f ),
145- loss : keras .losses .CategoricalCrossentropy (from_logits : true ),
146- metrics : new [] { " acc" });
147-
141+ loss : keras .losses .CategoricalCrossentropy (from_logits : true ),
142+ metrics : new [] { " acc" });
148143// prepare dataset
149144var ((x_train , y_train ), (x_test , y_test )) = keras .datasets .cifar10 .load_data ();
150-
145+ x_train = x_train / 255 . 0 f ;
146+ y_train = np_utils .to_categorical (y_train , 10 );
151147// training
152- model .fit (x_train [new Slice (0 , 1000 )], y_train [new Slice (0 , 1000 )],
153- batch_size : 64 ,
154- epochs : 10 ,
148+ model .fit (x_train [new Slice (0 , 2000 )], y_train [new Slice (0 , 2000 )],
149+ batch_size : 64 ,
150+ epochs : 10 ,
155151 validation_split : 0 . 2 f );
156152```
157153
@@ -260,4 +256,4 @@ WeChat Sponsor 微信打赏:
260256
261257TensorFlow.NET is a part of [ SciSharp STACK] ( https://scisharp.github.io/SciSharp/ )
262258<br >
263- <a href =" http://scisharpstack.org " ><img src =" https://github.com/SciSharp/SciSharp/blob/master/art/scisharp-stack.png " width =" 391 " height =" 100 " /></a >
259+ <a href =" http://scisharpstack.org " ><img src =" https://github.com/SciSharp/SciSharp/blob/master/art/scisharp-stack.png " width =" 391 " height =" 100 " /></a >
0 commit comments