From faf2309accff2d3ab44460fe110e5c2707b4133e Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Tue, 15 Jun 2021 18:06:14 -0400 Subject: [PATCH] applied content --- .../4-Applied/solution/index.html | 89 ++++++++++++++++-- .../4-Applied/solution/model.onnx | Bin 2204825 -> 2266266 bytes .../4-Applied/solution/notebook.ipynb | 50 +++++----- 3 files changed, 104 insertions(+), 35 deletions(-) diff --git a/4-Classification/4-Applied/solution/index.html b/4-Classification/4-Applied/solution/index.html index 99d200246..a229e7541 100644 --- a/4-Classification/4-Applied/solution/index.html +++ b/4-Classification/4-Applied/solution/index.html @@ -1,36 +1,105 @@
- ONNX Runtime JavaScript examples: Quick Start - Web (using script tag) + Recipe Matcher
+

Check your refrigerator. What can you create?

+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + + - diff --git a/4-Classification/4-Applied/solution/model.onnx b/4-Classification/4-Applied/solution/model.onnx index 591e0c2ba839ecb969887763513fc924550e9ed8..ee542f4db6bb4ca469b5cde76be239215c364f6d 100644 GIT binary patch delta 39837 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%0Dyz&T(Q%HuhJQm?u5`~R`54*PnT{g-wM|nJD`F*K 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 delta 36774 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 diff --git a/4-Classification/4-Applied/solution/notebook.ipynb b/4-Classification/4-Applied/solution/notebook.ipynb index b619dfbfc..14b1a1275 100644 --- a/4-Classification/4-Applied/solution/notebook.ipynb +++ b/4-Classification/4-Applied/solution/notebook.ipynb @@ -31,7 +31,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 25, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -39,17 +39,17 @@ "name": "stdout", "text": [ "Requirement already satisfied: skl2onnx in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (1.8.0)\n", - "Requirement already satisfied: numpy>=1.15 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (1.19.2)\n", - "Requirement already satisfied: onnxconverter-common<1.9,>=1.6.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (1.8.1)\n", "Requirement already satisfied: protobuf in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (3.8.0)\n", - "Requirement already satisfied: scikit-learn>=0.19 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (0.24.2)\n", - "Requirement already satisfied: scipy>=1.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (1.4.1)\n", + "Requirement already satisfied: numpy>=1.15 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (1.19.2)\n", "Requirement already satisfied: six in /Users/jenlooper/Library/Python/3.7/lib/python/site-packages (from skl2onnx) (1.12.0)\n", + "Requirement already satisfied: scipy>=1.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (1.4.1)\n", "Requirement already satisfied: onnx>=1.2.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (1.9.0)\n", + "Requirement already satisfied: scikit-learn>=0.19 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (0.24.2)\n", + "Requirement already satisfied: onnxconverter-common<1.9,>=1.6.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (1.8.1)\n", "Requirement already satisfied: setuptools in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from protobuf->skl2onnx) (45.1.0)\n", + "Requirement already satisfied: typing-extensions>=3.6.2.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from onnx>=1.2.1->skl2onnx) (3.10.0.0)\n", "Requirement already satisfied: joblib>=0.11 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from scikit-learn>=0.19->skl2onnx) (0.16.0)\n", "Requirement already satisfied: threadpoolctl>=2.0.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from scikit-learn>=0.19->skl2onnx) (2.1.0)\n", - "Requirement already satisfied: typing-extensions>=3.6.2.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from onnx>=1.2.1->skl2onnx) (3.10.0.0)\n", "\u001b[33mWARNING: You are using pip version 20.2.3; however, version 21.1.2 is available.\n", "You should consider upgrading via the '/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -m pip install --upgrade pip' command.\u001b[0m\n", "Note: you may need to restart the kernel to use updated packages.\n" @@ -62,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -70,9 +70,9 @@ "name": "stdout", "text": [ "Requirement already satisfied: onnxruntime in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (1.8.0)\n", - "Requirement already satisfied: flatbuffers in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from onnxruntime) (2.0)\n", "Requirement already satisfied: protobuf in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from onnxruntime) (3.8.0)\n", "Requirement already satisfied: numpy>=1.16.6 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from onnxruntime) (1.19.2)\n", + "Requirement already satisfied: flatbuffers in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from onnxruntime) (2.0)\n", "Requirement already satisfied: six>=1.9 in /Users/jenlooper/Library/Python/3.7/lib/python/site-packages (from protobuf->onnxruntime) (1.12.0)\n", "Requirement already satisfied: setuptools in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from protobuf->onnxruntime) (45.1.0)\n", "\u001b[33mWARNING: You are using pip version 20.2.3; however, version 21.1.2 is available.\n", @@ -87,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -97,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -130,7 +130,7 @@ "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0cuisinealmondangelicaaniseanise_seedappleapple_brandyapricotarmagnac...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
00indian00000000...0000000000
11indian10000000...0000000000
22indian00000000...0000000000
33indian00000000...0000000000
44indian00000000...0000000010
\n

5 rows × 382 columns

\n
" }, "metadata": {}, - "execution_count": 28 + "execution_count": 4 } ], "source": [ @@ -140,7 +140,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -173,7 +173,7 @@ "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
almondangelicaaniseanise_seedappleapple_brandyapricotarmagnacartemisiaartichoke...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
00000000000...0000000000
11000000000...0000000000
20000000000...0000000000
30000000000...0000000000
40000000000...0000000010
\n

5 rows × 380 columns

\n
" }, "metadata": {}, - "execution_count": 29 + "execution_count": 5 } ], "source": [ @@ -183,7 +183,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -200,7 +200,7 @@ "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
cuisine
0indian
1indian
2indian
3indian
4indian
\n
" }, "metadata": {}, - "execution_count": 30 + "execution_count": 6 } ], "source": [ @@ -210,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -222,7 +222,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -231,7 +231,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -242,7 +242,7 @@ ] }, "metadata": {}, - "execution_count": 33 + "execution_count": 9 } ], "source": [ @@ -252,7 +252,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -261,14 +261,14 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 11, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ - " precision recall f1-score support\n\n chinese 0.67 0.68 0.67 243\n indian 0.90 0.87 0.89 238\n japanese 0.75 0.73 0.74 251\n korean 0.84 0.74 0.79 242\n thai 0.74 0.86 0.80 225\n\n accuracy 0.77 1199\n macro avg 0.78 0.78 0.78 1199\nweighted avg 0.78 0.77 0.78 1199\n\n" + " precision recall f1-score support\n\n chinese 0.67 0.70 0.69 232\n indian 0.87 0.89 0.88 252\n japanese 0.80 0.70 0.75 241\n korean 0.83 0.82 0.83 228\n thai 0.76 0.81 0.79 246\n\n accuracy 0.79 1199\n macro avg 0.79 0.79 0.79 1199\nweighted avg 0.79 0.79 0.79 1199\n\n" ] } ], @@ -278,17 +278,17 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "from skl2onnx import convert_sklearn\n", "from skl2onnx.common.data_types import FloatTensorType\n", "\n", - "initial_type = [('float_input', FloatTensorType([None, 10]))]\n", + "initial_type = [('float_input', FloatTensorType([None, 380]))]\n", "options = {id(model): {'nocl': True, 'zipmap': False}}\n", "onx = convert_sklearn(model, initial_types=initial_type,options=options)\n", - "with open(\"./model2.onnx\", \"wb\") as f:\n", + "with open(\"./model.onnx\", \"wb\") as f:\n", " f.write(onx.SerializeToString())\n", "\n", "\n"