From fe5f57cd3b3d9e10c7ad24e558d963e428c5136d Mon Sep 17 00:00:00 2001 From: Andrew DalPino Date: Fri, 1 Jan 2021 00:01:15 -0600 Subject: [PATCH] Update to Rubix ML 0.3.0 --- LICENSE.md => LICENSE | 2 +- README.md | 6 +- composer.json | 10 +-- docs/images/training-loss.svg | 98 ------------------------------ docs/images/training-losses.png | Bin 0 -> 43206 bytes docs/images/validation-score.svg | 82 ------------------------- docs/images/validation-scores.png | Bin 0 -> 43903 bytes 7 files changed, 7 insertions(+), 191 deletions(-) rename LICENSE.md => LICENSE (96%) delete mode 100644 docs/images/training-loss.svg create mode 100644 docs/images/training-losses.png delete mode 100644 docs/images/validation-score.svg create mode 100644 docs/images/validation-scores.png diff --git a/LICENSE.md b/LICENSE similarity index 96% rename from LICENSE.md rename to LICENSE index 38420b19..60c1e93b 100644 --- a/LICENSE.md +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020 The Rubix ML Community +Copyright (c) 2020 Rubix ML Copyright (c) 2020 Andrew DalPino Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/README.md b/README.md index 3ccf3556..ec25d1fd 100644 --- a/README.md +++ b/README.md @@ -114,9 +114,9 @@ $scores = $estimator->scores(); Then, we can plot the values using our favorite plotting software such as [Tableu](https://public.tableau.com/en-us/s/) or [Excel](https://products.office.com/en-us/excel-a). If all goes well, the value of the loss should go down as the value of the validation score goes up. Due to snapshotting, the epoch at which the validation score is highest and the loss is lowest is the point at which the values of the network parameters are taken. -![Cross Entropy Loss](https://raw.githubusercontent.com/RubixML/CIFAR-10/master/docs/images/training-loss.svg?sanitize=true) +![Cross Entropy Loss](https://raw.githubusercontent.com/RubixML/CIFAR-10/master/docs/images/training-losses.png) -![F1 Score](https://raw.githubusercontent.com/RubixML/CIFAR-10/master/docs/images/validation-score.svg?sanitize=true) +![F1 Score](https://raw.githubusercontent.com/RubixML/CIFAR-10/master/docs/images/validation-scores.png) ### Saving Before exiting the script, save the model so we can run cross validation on it in another process. @@ -242,4 +242,4 @@ Email: akrizhevsky '@' gmail.com >- [1] A. Krizhevsky. (2009). Learning Multiple Layers of Features from Tiny Images. ## License -The code is licensed [MIT](LICENSE.md) and the tutorial is licensed [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/). +The code is licensed [MIT](LICENSE) and the tutorial is licensed [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/). diff --git a/composer.json b/composer.json index 198806e6..0744b2e1 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "type": "project", "description": "Use the famous CIFAR-10 dataset to train a multi-layer neural network to recognize images of cats, dogs, and other things.", "homepage": "https://github.com/RubixML/CIFAR10", - "license": "Apache-2.0", + "license": "MIT", "keywords": [ "batch norm", "cifar 10", "cifar-10", "classification", "cross validation", "dataset", "data science", "dropout", "elu", "example project", "exponential linear unit", @@ -14,18 +14,14 @@ "authors": [ { "name": "Andrew DalPino", - "email": "me@andrewdalpino.com", - "homepage": "https://andrewdalpino.com", + "homepage": "https://github.com/andrewdalpino", "role": "Lead Engineer" } ], "require": { "php": ">=7.2", "ext-gd": "*", - "rubix/ml": "^0.1.0" - }, - "suggest": { - "ext-tensor": "For faster training and inference" + "rubix/ml": "^0.3.0" }, "scripts": { "train": "@php train.php", diff --git a/docs/images/training-loss.svg b/docs/images/training-loss.svg deleted file mode 100644 index 8e81c9f2..00000000 --- a/docs/images/training-loss.svg +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 0.605 - 0.61 - 0.615 - 0.62 - 0.625 - 0.63 - 0.635 - 0.64 - 0.645 - 0.65 - 0.655 - Training Loss - Rubix ML Multilayer Perceptron - - Column B - Epoch - Cross Entropy - \ No newline at end of file diff --git a/docs/images/training-losses.png b/docs/images/training-losses.png new file mode 100644 index 0000000000000000000000000000000000000000..00ca08639b7e0f35e471a65e68dd7eb5fe597f91 GIT binary patch literal 43206 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 literal 0 HcmV?d00001 diff --git a/docs/images/validation-score.svg b/docs/images/validation-score.svg deleted file mode 100644 index b9d586b6..00000000 --- a/docs/images/validation-score.svg +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 0 - 0.1 - 0.2 - 0.3 - 0.4 - 0.5 - 0.6 - Validation Score - Rubix ML Multilayer Perceptron - - score - Epoch - F1 Score - \ No newline at end of file diff --git a/docs/images/validation-scores.png b/docs/images/validation-scores.png new file mode 100644 index 0000000000000000000000000000000000000000..e65296c8dd42f3d62f76dafc5ba2b496c9580110 GIT binary patch literal 43903 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%0DH;cVN>HS)1%|94c7@}2gWP( z;^JL7@T8=+`KAS=^`LK?>W>K=j!%MaZ(ZEHi}}7C3Iue(jAhgJprf5dZT5ZnJzAV} zKfG}JuA`aD6M~l%6q|2gLbA#?#(0$Vp+th4rUzPP`y1~HQ1h-P`dUvB?<%3ZRGWL~l zrL|`n&GBvoB%!y|uHP$lth2e^(jowmw;SQ#cjTMK^~+?cjCx+;aJVZiATfQPX(t7U zj->dYYneLOD0PsAz|u=O*@FQ;_0&GKK;FCV+3hf1mN#DI&$2uzH)rDA0>BNrA5B(G zJ~EkJ~! zy9Ok$A=w=(h_qmfZwQJ=E0-r-GTwqo2bs8NzIofpOJMmG4mDi@l*<33x zLp_~M^SyLWIVYxEBdtd;IiIxTT4S-g`dXNntZ&`gKx2LD)NRi>2wmmD(x!sb^F;e( zy!GaqJ~Sib2B)RgZ`=9hi2j#+ty9J_$7-W6V#>4IoUS2=E1POPhn6Y(IBjaJ+}v7~ z0Y88+E9)VXhmo>4TNW87Rh)K^Zt&9WTz#>Y*<4>Yp@vs$jvay+Z49&3aFEtT2x*Fj zlf=(vgAhx9&A9%Y&^0uSrvv!Xx$h_%sFyfrISm9g&ZsF! z!|2%uYTt-Vi=_F`(YQX*cNTMa z@=+Sc;Tji;wiSUxr98;z8w>PrfejgZeZ()IBSYKRl|V+d7b-95I7M51}Z;8G>Y z#qiAz5Lp&NbbiAOs9P`ssB;b0{8(Vjyin)UV+FyP�)V_PVSksw~UFr>CbA?+#A^ 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