m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Chrzanowski <m@m-chrzan.xyz>2021-05-01 15:18:02 +0200
committerMarcin Chrzanowski <m@m-chrzan.xyz>2021-05-01 15:18:02 +0200
commite6ea98728380a222459049987ddbb858464741d3 (patch)
tree4b04e099154af8b9102cab8df32d382251adddae
parent1c708e9a449a90c866d7efb44798ba8a74ee4e85 (diff)
Translate and improve README
-rw-r--r--README.md75
1 files changed, 53 insertions, 22 deletions
diff --git a/README.md b/README.md
index 61d97b5..a4fd6cf 100644
--- a/README.md
+++ b/README.md
@@ -1,22 +1,53 @@
-# GSN, zadanie 1
-
-Rozpoznawanie kształtów i ich liczebności.
-
-## Trenowanie
-
-Po każdym trenowaniu wygenerowany jest raport zawierający informacje na temat
-danego eksperymentu. Zawiera:
-
-* Opis sieci
- * Warstwy
- * Liczebność parametrów
-* Hiperparametry
- * Learning rate
- * Liczba epok
- * Batch size
- * Momentum i inne jeśli wykorzystane
-* Wykorzystane dane (w postaci opisu nałożonych augmentacji)
-* Metryki
- * Loss per epoka dla danych testowych
- * Loss per epoka dla danych treningowych
- * Accuracy dla danych treningowych
+# Deep Neural Networks, Homework 1
+
+Recognizing and counting shapes.
+
+## Running experiments
+
+ python src/run.py configuration.yaml
+
+### Configuration
+
+We can specify various training scenarios via YAML files. This allows us to
+experiment with different network architectures and hyperparameters.
+
+The configuration should have the following fields:
+
+* `type`: one of `classification`, `counting-small`, `counting-large`, depending
+ on which problem we're attempting to train for. This controls:
+ * the size of the final output layer
+ * final transformation applied to output layer
+ * transformations applied to targets, if necessary
+ * the loss function used
+ * the accuracy metric used
+* `batch_norm` (defaults to `false`)
+* `dropout` (defaults to `false`): `false` or `p` parameter for dropout layers
+* `lr`
+* `epochs`
+* `batch_size`
+* `augmentations`: list of augmentation specifications to expand the dataset
+ with:
+ * `rotation` (defaults to 0): integer 0-3 specifying number of 90° rotations
+ to apply
+ * `vflip` (defaults to `false`)
+ * `hflip` (defaults to `false`)
+* `convolutions`: a list of convolution layer specifications:
+ * `in_channels`
+ * `out_channels`
+ * `size` (defaults to 3)
+ * `stride` (defaults to 1)
+ * `padding` (defaults to 1)
+ * `max_pool` (defaults to `false`): whether to apply a 2x2 max pool layer
+* `linears`: a list of desnse layer specifications:
+ * `in_features`
+ * `out_features`
+
+### Results
+
+For each run, a timestamped directory is created under `outputs/` with:
+
+* A copy of the used configuration file
+* A CSV file with train set losses, test set losses, and test set accuracies,
+ for each epoch
+* `losses.png`: a plot of the losses
+* `accuracies.png`: a plot of the accuracies