1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Import the modules needed to create a test model and run the TOSA Checker."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import tosa_checker as tc\n",
"import tensorflow as tf\n",
"import tempfile\n",
"import os"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Create a simple model that is compatible with the TOSA specification."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Assets written to: /tmp/tmpxc09cs65/assets\n"
]
}
],
"source": [
"input = tf.keras.layers.Input(shape=(16,))\n",
"x = tf.keras.layers.Dense(8, activation=\"relu\")(input)\n",
"model = tf.keras.models.Model(inputs=[input], outputs=x)\n",
"converter = tf.lite.TFLiteConverter.from_keras_model(model)\n",
"tflite_model = converter.convert()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Save this model in `.tflite` format. Note that the TOSA Checker only accepts models in this format currently."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"_, tflite_file = tempfile.mkstemp('.tflite')\n",
"with open(tflite_file, \"wb\") as f:\n",
" f.write(tflite_model)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Use the TOSA Checker to check this model."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Is model TOSA compatible ? True\n"
]
}
],
"source": [
"checker = tc.TOSAChecker(model_path=tflite_file)\n",
"result = checker.is_tosa_compatible()\n",
"print(\"Is model TOSA compatible ? {}\".format(result))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.8.0 ('tosa_checker': venv)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.0"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}
|