Zai commited on
Commit
21ff05c
·
1 Parent(s): 03e5b7c
Files changed (6) hide show
  1. __pycache__/model.cpython-310.pyc +0 -0
  2. app.py +39 -0
  3. data.csv +101 -0
  4. model.py +32 -0
  5. notebook.ipynb +359 -0
  6. your_model.pth +3 -0
__pycache__/model.cpython-310.pyc ADDED
Binary file (1.27 kB). View file
 
app.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from model import SimpleNN, predict
3
+ import torch
4
+ from sklearn.preprocessing import LabelEncoder
5
+
6
+
7
+ model = SimpleNN(input_size=4, hidden_size=64, output_size=5)
8
+ model.load_state_dict(torch.load("your_model.pth"))
9
+ model.eval()
10
+
11
+
12
+ label_encoder = LabelEncoder()
13
+
14
+
15
+ def classifier(rarity, size, color, country):
16
+ label_encoder.fit([rarity, color, country])
17
+
18
+ input_data = [
19
+ label_encoder.transform([rarity])[0],
20
+ size,
21
+ label_encoder.transform([color])[0],
22
+ label_encoder.transform([country])[0],
23
+ ]
24
+
25
+ predicted_class_index = predict(model, input_data)
26
+
27
+ predicted_species = label_encoder.inverse_transform([predicted_class_index])[0]
28
+
29
+ return (
30
+ f"{rarity} {size} {color} {country} => Predicted Species: {predicted_species}"
31
+ )
32
+
33
+
34
+ iface = gr.Interface(
35
+ fn=classifier, inputs=["text", "number", "text", "text"], outputs="text"
36
+ )
37
+
38
+
39
+ iface.launch(share=True)
data.csv ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ rarity,size,color,species,country
2
+ Common,4.5,Green,TreeFrog,USA
3
+ Uncommon,3.2,Brown,Bullfrog,Canada
4
+ Common,5.1,Blue,TreeFrog,Mexico
5
+ Rare,6.7,Red,RedEyedTreeFrog,Brazil
6
+ Common,2.8,Yellow,BananaFrog,Australia
7
+ Uncommon,5.5,Green,Bullfrog,USA
8
+ Common,3.9,Brown,TreeFrog,Canada
9
+ Rare,4.8,Blue,GreenTreeFrog,Mexico
10
+ Rare,6.2,Red,RedEyedTreeFrog,Brazil
11
+ Common,2.4,Yellow,BananaFrog,Australia
12
+ Uncommon,5.3,Green,Bullfrog,USA
13
+ Common,3.5,Brown,GreenTreeFrog,Canada
14
+ Common,4.7,Blue,TreeFrog,Mexico
15
+ Rare,6.1,Red,RedEyedTreeFrog,Brazil
16
+ Common,2.2,Yellow,BananaFrog,Australia
17
+ Uncommon,4.9,Green,TreeFrog,USA
18
+ Uncommon,3.3,Brown,Bullfrog,Canada
19
+ Rare,5.6,Blue,GreenTreeFrog,Mexico
20
+ Rare,6.4,Red,RedEyedTreeFrog,Brazil
21
+ Common,2.9,Yellow,BananaFrog,Australia
22
+ Uncommon,5.2,Green,Bullfrog,USA
23
+ Common,3.8,Brown,TreeFrog,Canada
24
+ Common,4.6,Blue,GreenTreeFrog,Mexico
25
+ Rare,6.5,Red,RedEyedTreeFrog,Brazil
26
+ Common,2.7,Yellow,BananaFrog,Australia
27
+ Uncommon,5.7,Green,Bullfrog,USA
28
+ Common,3.1,Brown,GreenTreeFrog,Canada
29
+ Rare,4.2,Blue,GreenTreeFrog,Mexico
30
+ Rare,6.9,Red,RedEyedTreeFrog,Brazil
31
+ Common,2.1,Yellow,BananaFrog,Australia
32
+ Uncommon,5.0,Green,Bullfrog,USA
33
+ Common,3.4,Brown,TreeFrog,Canada
34
+ Uncommon,4.4,Blue,GreenTreeFrog,Mexico
35
+ Rare,6.3,Red,RedEyedTreeFrog,Brazil
36
+ Common,2.5,Yellow,BananaFrog,Australia
37
+ Uncommon,5.4,Green,Bullfrog,USA
38
+ Common,3.6,Brown,TreeFrog,Canada
39
+ Rare,4.3,Blue,GreenTreeFrog,Mexico
40
+ Rare,6.0,Red,RedEyedTreeFrog,Brazil
41
+ Common,2.6,Yellow,BananaFrog,Australia
42
+ Uncommon,4.1,Green,Bullfrog,USA
43
+ Common,3.0,Brown,TreeFrog,Canada
44
+ Common,5.8,Blue,GreenTreeFrog,Mexico
45
+ Rare,6.8,Red,RedEyedTreeFrog,Brazil
46
+ Common,2.3,Yellow,BananaFrog,Australia
47
+ Uncommon,5.9,Green,Bullfrog,USA
48
+ Common,3.7,Brown,TreeFrog,Canada
49
+ Rare,4.0,Blue,GreenTreeFrog,Mexico
50
+ Rare,6.6,Red,RedEyedTreeFrog,Brazil
51
+ Common,2.0,Yellow,BananaFrog,Australia
52
+ Uncommon,4.9,Green,Bullfrog,USA
53
+ Uncommon,3.3,Brown,TreeFrog,Canada
54
+ Rare,5.5,Blue,GreenTreeFrog,Mexico
55
+ Rare,6.1,Red,RedEyedTreeFrog,Brazil
56
+ Common,2.7,Yellow,BananaFrog,Australia
57
+ Uncommon,5.2,Green,Bullfrog,USA
58
+ Common,3.8,Brown,TreeFrog,Canada
59
+ Rare,4.6,Blue,GreenTreeFrog,Mexico
60
+ Rare,6.4,Red,RedEyedTreeFrog,Brazil
61
+ Common,2.1,Yellow,BananaFrog,Australia
62
+ Uncommon,4.8,Green,Bullfrog,USA
63
+ Common,3.5,Brown,GreenTreeFrog,Canada
64
+ Common,5.2,Blue,GreenTreeFrog,Mexico
65
+ Rare,6.0,Red,RedEyedTreeFrog,Brazil
66
+ Common,2.4,Yellow,BananaFrog,Australia
67
+ Uncommon,5.6,Green,Bullfrog,USA
68
+ Common,3.1,Brown,TreeFrog,Canada
69
+ Rare,4.5,Blue,GreenTreeFrog,Mexico
70
+ Rare,6.8,Red,RedEyedTreeFrog,Brazil
71
+ Common,2.9,Yellow,BananaFrog,Australia
72
+ Uncommon,5.3,Green,Bullfrog,USA
73
+ Common,3.7,Brown,TreeFrog,Canada
74
+ Common,4.2,Blue,GreenTreeFrog,Mexico
75
+ Rare,6.6,Red,RedEyedTreeFrog,Brazil
76
+ Common,2.2,Yellow,BananaFrog,Australia
77
+ Uncommon,5.0,Green,Bullfrog,USA
78
+ Common,3.4,Brown,GreenTreeFrog,Canada
79
+ Rare,4.7,Blue,TreeFrog,Mexico
80
+ Rare,6.3,Red,RedEyedTreeFrog,Brazil
81
+ Common,2.5,Yellow,BananaFrog,Australia
82
+ Uncommon,4.6,Green,Bullfrog,USA
83
+ Common,3.0,Brown,TreeFrog,Canada
84
+ Common,5.8,Blue,GreenTreeFrog,Mexico
85
+ Rare,6.9,Red,RedEyedTreeFrog,Brazil
86
+ Common,2.6,Yellow,BananaFrog,Australia
87
+ Uncommon,5.7,Green,Bullfrog,USA
88
+ Common,3.2,Brown,TreeFrog,Canada
89
+ Rare,4.3,Blue,GreenTreeFrog,Mexico
90
+ Rare,6.2,Red,RedEyedTreeFrog,Brazil
91
+ Common,2.3,Yellow,BananaFrog,Australia
92
+ Uncommon,5.1,Green,Bullfrog,USA
93
+ Common,3.6,Brown,TreeFrog,Canada
94
+ Rare,4.0,Blue,GreenTreeFrog,Mexico
95
+ Rare,6.5,Red,RedEyedTreeFrog,Brazil
96
+ Common,2.8,Yellow,BananaFrog,Australia
97
+ Uncommon,5.4,Green,Bullfrog,USA
98
+ Common,3.0,Brown,TreeFrog,Canada
99
+ Rare,4.4,Blue,GreenTreeFrog,Mexico
100
+ Rare,6.7,Red,RedEyedTreeFrog,Brazil
101
+ Common,2.4,Yellow,BananaFrog,Australia
model.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from torch import nn
2
+ import torch
3
+
4
+ input_size = 4
5
+ hidden_size = 64
6
+ output_size = 5
7
+
8
+
9
+ class SimpleNN(nn.Module):
10
+ def __init__(self, input_size, hidden_size, output_size):
11
+ super(SimpleNN, self).__init__()
12
+ self.fc1 = nn.Linear(input_size, hidden_size)
13
+ self.relu = nn.ReLU()
14
+ self.fc2 = nn.Linear(hidden_size, output_size)
15
+
16
+ def forward(self, x):
17
+ x = self.relu(self.fc1(x))
18
+ x = self.fc2(x)
19
+ return x
20
+
21
+
22
+ def predict(model, input):
23
+ model.eval()
24
+ input_tensors = torch.tensor(input, dtype=torch.float32).unsqueeze(0)
25
+
26
+ with torch.no_grad():
27
+ output = model(input_tensors)
28
+
29
+ probabilities = torch.softmax(output, dim=1)
30
+
31
+ predicted_class_index = torch.argmax(probabilities, dim=1).item()
32
+ return predicted_class_index
notebook.ipynb ADDED
@@ -0,0 +1,359 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 38,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import pandas as pd\n",
10
+ "from torch import nn\n",
11
+ "import torch\n",
12
+ "from torch.utils.data import DataLoader\n",
13
+ "import torch.optim as optim\n",
14
+ "from sklearn.model_selection import train_test_split\n",
15
+ "from sklearn.preprocessing import LabelEncoder\n",
16
+ "from sklearn.preprocessing import StandardScaler\n"
17
+ ]
18
+ },
19
+ {
20
+ "cell_type": "code",
21
+ "execution_count": 39,
22
+ "metadata": {},
23
+ "outputs": [
24
+ {
25
+ "data": {
26
+ "text/html": [
27
+ "<div>\n",
28
+ "<style scoped>\n",
29
+ " .dataframe tbody tr th:only-of-type {\n",
30
+ " vertical-align: middle;\n",
31
+ " }\n",
32
+ "\n",
33
+ " .dataframe tbody tr th {\n",
34
+ " vertical-align: top;\n",
35
+ " }\n",
36
+ "\n",
37
+ " .dataframe thead th {\n",
38
+ " text-align: right;\n",
39
+ " }\n",
40
+ "</style>\n",
41
+ "<table border=\"1\" class=\"dataframe\">\n",
42
+ " <thead>\n",
43
+ " <tr style=\"text-align: right;\">\n",
44
+ " <th></th>\n",
45
+ " <th>rarity</th>\n",
46
+ " <th>size</th>\n",
47
+ " <th>color</th>\n",
48
+ " <th>species</th>\n",
49
+ " <th>country</th>\n",
50
+ " </tr>\n",
51
+ " </thead>\n",
52
+ " <tbody>\n",
53
+ " <tr>\n",
54
+ " <th>0</th>\n",
55
+ " <td>Common</td>\n",
56
+ " <td>4.5</td>\n",
57
+ " <td>Green</td>\n",
58
+ " <td>TreeFrog</td>\n",
59
+ " <td>USA</td>\n",
60
+ " </tr>\n",
61
+ " <tr>\n",
62
+ " <th>1</th>\n",
63
+ " <td>Uncommon</td>\n",
64
+ " <td>3.2</td>\n",
65
+ " <td>Brown</td>\n",
66
+ " <td>Bullfrog</td>\n",
67
+ " <td>Canada</td>\n",
68
+ " </tr>\n",
69
+ " <tr>\n",
70
+ " <th>2</th>\n",
71
+ " <td>Common</td>\n",
72
+ " <td>5.1</td>\n",
73
+ " <td>Blue</td>\n",
74
+ " <td>TreeFrog</td>\n",
75
+ " <td>Mexico</td>\n",
76
+ " </tr>\n",
77
+ " <tr>\n",
78
+ " <th>3</th>\n",
79
+ " <td>Rare</td>\n",
80
+ " <td>6.7</td>\n",
81
+ " <td>Red</td>\n",
82
+ " <td>RedEyedTreeFrog</td>\n",
83
+ " <td>Brazil</td>\n",
84
+ " </tr>\n",
85
+ " <tr>\n",
86
+ " <th>4</th>\n",
87
+ " <td>Common</td>\n",
88
+ " <td>2.8</td>\n",
89
+ " <td>Yellow</td>\n",
90
+ " <td>BananaFrog</td>\n",
91
+ " <td>Australia</td>\n",
92
+ " </tr>\n",
93
+ " </tbody>\n",
94
+ "</table>\n",
95
+ "</div>"
96
+ ],
97
+ "text/plain": [
98
+ " rarity size color species country\n",
99
+ "0 Common 4.5 Green TreeFrog USA\n",
100
+ "1 Uncommon 3.2 Brown Bullfrog Canada\n",
101
+ "2 Common 5.1 Blue TreeFrog Mexico\n",
102
+ "3 Rare 6.7 Red RedEyedTreeFrog Brazil\n",
103
+ "4 Common 2.8 Yellow BananaFrog Australia"
104
+ ]
105
+ },
106
+ "execution_count": 39,
107
+ "metadata": {},
108
+ "output_type": "execute_result"
109
+ }
110
+ ],
111
+ "source": [
112
+ "data = pd.read_csv('data.csv')\n",
113
+ "data.head()"
114
+ ]
115
+ },
116
+ {
117
+ "cell_type": "code",
118
+ "execution_count": 40,
119
+ "metadata": {},
120
+ "outputs": [],
121
+ "source": [
122
+ "\n",
123
+ "# Preprocess data\n",
124
+ "label_encoder = LabelEncoder()\n",
125
+ "data['species'] = label_encoder.fit_transform(data['species'])\n",
126
+ "data['rarity'] = label_encoder.fit_transform(data['rarity']) # Encode the 'rarity' column\n",
127
+ "data['color'] = label_encoder.fit_transform(data['color'])\n",
128
+ "data['country'] = label_encoder.fit_transform(data['country'])\n",
129
+ "\n",
130
+ "\n",
131
+ "X = data.drop(['species'], axis=1).values\n",
132
+ "y = data['species'].values\n",
133
+ "\n",
134
+ "# Split data into training and testing sets\n",
135
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
136
+ "\n"
137
+ ]
138
+ },
139
+ {
140
+ "cell_type": "code",
141
+ "execution_count": 41,
142
+ "metadata": {},
143
+ "outputs": [],
144
+ "source": [
145
+ "X_train_tensor = torch.tensor(X_train, dtype=torch.float32)\n",
146
+ "y_train_tensor = torch.tensor(y_train, dtype=torch.int64)\n",
147
+ "X_test_tensor = torch.tensor(X_test, dtype=torch.float32)\n",
148
+ "y_test_tensor = torch.tensor(y_test, dtype=torch.int64)"
149
+ ]
150
+ },
151
+ {
152
+ "cell_type": "code",
153
+ "execution_count": 42,
154
+ "metadata": {},
155
+ "outputs": [],
156
+ "source": [
157
+ "# deep nn\n",
158
+ "\n",
159
+ "class SimpleNN(nn.Module):\n",
160
+ " def __init__(self,input_size,hidden_size,output_size):\n",
161
+ " super(SimpleNN,self).__init__()\n",
162
+ " self.fc1 = nn.Linear(input_size,hidden_size)\n",
163
+ " self.relu = nn.ReLU()\n",
164
+ " self.fc2 = nn.Linear(hidden_size,output_size)\n",
165
+ "\n",
166
+ " def forward(self,x):\n",
167
+ " x = self.relu(self.fc1(x))\n",
168
+ " x = self.fc2(x)\n",
169
+ " return x\n"
170
+ ]
171
+ },
172
+ {
173
+ "cell_type": "code",
174
+ "execution_count": 50,
175
+ "metadata": {},
176
+ "outputs": [
177
+ {
178
+ "data": {
179
+ "text/plain": [
180
+ "5"
181
+ ]
182
+ },
183
+ "execution_count": 50,
184
+ "metadata": {},
185
+ "output_type": "execute_result"
186
+ }
187
+ ],
188
+ "source": [
189
+ "input_size = 4\n",
190
+ "hidden_size = 64 \n",
191
+ "output_size = len(label_encoder.classes_)\n",
192
+ "\n",
193
+ "model = SimpleNN(input_size=input_size,hidden_size=hidden_size,output_size=output_size)\n",
194
+ "optimizer = optim.Adam(model.parameters(),lr=0.001)\n",
195
+ "loss_fn = nn.CrossEntropyLoss()\n",
196
+ "\n",
197
+ "output_size\n",
198
+ "\n"
199
+ ]
200
+ },
201
+ {
202
+ "cell_type": "code",
203
+ "execution_count": 47,
204
+ "metadata": {},
205
+ "outputs": [
206
+ {
207
+ "name": "stdout",
208
+ "output_type": "stream",
209
+ "text": [
210
+ "Epoch [1/10], Loss: 1.5100\n",
211
+ "Epoch [2/10], Loss: 1.4834\n",
212
+ "Epoch [3/10], Loss: 1.4557\n",
213
+ "Epoch [4/10], Loss: 1.4273\n",
214
+ "Epoch [5/10], Loss: 1.3985\n",
215
+ "Epoch [6/10], Loss: 1.3693\n",
216
+ "Epoch [7/10], Loss: 1.3398\n",
217
+ "Epoch [8/10], Loss: 1.3105\n",
218
+ "Epoch [9/10], Loss: 1.2812\n",
219
+ "Epoch [10/10], Loss: 1.2522\n"
220
+ ]
221
+ }
222
+ ],
223
+ "source": [
224
+ "num_epochs = 10\n",
225
+ "batch_size = 32\n",
226
+ "\n",
227
+ "for epoch in range(num_epochs):\n",
228
+ " for i in range(0, len(X_train_tensor), batch_size):\n",
229
+ " inputs = X_train_tensor[i:i + batch_size]\n",
230
+ " labels = y_train_tensor[i:i + batch_size]\n",
231
+ "\n",
232
+ " optimizer.zero_grad()\n",
233
+ " outputs = model(inputs)\n",
234
+ " loss = loss_fn(outputs, labels)\n",
235
+ " loss.backward()\n",
236
+ " optimizer.step()\n",
237
+ "\n",
238
+ " print(f'Epoch [{epoch + 1}/{num_epochs}], Loss: {loss.item():.4f}')\n"
239
+ ]
240
+ },
241
+ {
242
+ "cell_type": "code",
243
+ "execution_count": 49,
244
+ "metadata": {},
245
+ "outputs": [],
246
+ "source": [
247
+ "# Save the model\n",
248
+ "torch.save(model.state_dict(), 'your_model.pth')\n"
249
+ ]
250
+ },
251
+ {
252
+ "cell_type": "code",
253
+ "execution_count": 51,
254
+ "metadata": {},
255
+ "outputs": [],
256
+ "source": [
257
+ "loaded_model = SimpleNN(input_size=input_size, hidden_size=hidden_size, output_size=output_size)"
258
+ ]
259
+ },
260
+ {
261
+ "cell_type": "code",
262
+ "execution_count": 52,
263
+ "metadata": {},
264
+ "outputs": [
265
+ {
266
+ "data": {
267
+ "text/plain": [
268
+ "<All keys matched successfully>"
269
+ ]
270
+ },
271
+ "execution_count": 52,
272
+ "metadata": {},
273
+ "output_type": "execute_result"
274
+ }
275
+ ],
276
+ "source": [
277
+ "loaded_model.load_state_dict(torch.load('your_model.pth'))"
278
+ ]
279
+ },
280
+ {
281
+ "cell_type": "code",
282
+ "execution_count": 53,
283
+ "metadata": {},
284
+ "outputs": [
285
+ {
286
+ "data": {
287
+ "text/plain": [
288
+ "SimpleNN(\n",
289
+ " (fc1): Linear(in_features=4, out_features=64, bias=True)\n",
290
+ " (relu): ReLU()\n",
291
+ " (fc2): Linear(in_features=64, out_features=5, bias=True)\n",
292
+ ")"
293
+ ]
294
+ },
295
+ "execution_count": 53,
296
+ "metadata": {},
297
+ "output_type": "execute_result"
298
+ }
299
+ ],
300
+ "source": [
301
+ "loaded_model.eval()"
302
+ ]
303
+ },
304
+ {
305
+ "cell_type": "code",
306
+ "execution_count": 55,
307
+ "metadata": {},
308
+ "outputs": [
309
+ {
310
+ "name": "stdout",
311
+ "output_type": "stream",
312
+ "text": [
313
+ "Test Accuracy: 80.00%\n"
314
+ ]
315
+ }
316
+ ],
317
+ "source": [
318
+ "with torch.no_grad():\n",
319
+ " # Make predictions on the test set\n",
320
+ " loaded_outputs = loaded_model(X_test_tensor)\n",
321
+ "\n",
322
+ " # Convert the model outputs to class predictions\n",
323
+ " _, predicted_labels = torch.max(loaded_outputs, 1)\n",
324
+ "\n",
325
+ " # Evaluate accuracy\n",
326
+ " accuracy = (predicted_labels == y_test_tensor).sum().item() / len(y_test_tensor)\n",
327
+ " print(f'Test Accuracy: {accuracy * 100:.2f}%')"
328
+ ]
329
+ },
330
+ {
331
+ "cell_type": "code",
332
+ "execution_count": null,
333
+ "metadata": {},
334
+ "outputs": [],
335
+ "source": []
336
+ }
337
+ ],
338
+ "metadata": {
339
+ "kernelspec": {
340
+ "display_name": "ai_env",
341
+ "language": "python",
342
+ "name": "python3"
343
+ },
344
+ "language_info": {
345
+ "codemirror_mode": {
346
+ "name": "ipython",
347
+ "version": 3
348
+ },
349
+ "file_extension": ".py",
350
+ "mimetype": "text/x-python",
351
+ "name": "python",
352
+ "nbconvert_exporter": "python",
353
+ "pygments_lexer": "ipython3",
354
+ "version": "3.10.13"
355
+ }
356
+ },
357
+ "nbformat": 4,
358
+ "nbformat_minor": 2
359
+ }
your_model.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:52208f5a32479973544eed29cb6c6d5e9a7e57a58298b7a8548d8404defbe29a
3
+ size 4648