yasirfaizahmed
commited on
Commit
•
4020c78
1
Parent(s):
058e617
init commit
Browse files- model_uploader.ipynb +27 -0
- model_utilizer.ipynb +84 -0
- notes/mnist.ipynb +120 -0
model_uploader.ipynb
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "code",
|
5 |
+
"execution_count": null,
|
6 |
+
"metadata": {},
|
7 |
+
"outputs": [],
|
8 |
+
"source": [
|
9 |
+
"import huggingface_hub as hb\n",
|
10 |
+
"from tensorflow import keras\n",
|
11 |
+
"\n",
|
12 |
+
"# Load the model\n",
|
13 |
+
"model = keras.models.load_model('../../models/imsoumyaneel-sentiment_analysis_llama2.keras')\n",
|
14 |
+
"\n",
|
15 |
+
"# Upload the model to Hugging Face\n",
|
16 |
+
"hub.push_to_hub_keras(model, repo_id=\"yasirfaizahmed/sentiment-text-classifications\")"
|
17 |
+
]
|
18 |
+
}
|
19 |
+
],
|
20 |
+
"metadata": {
|
21 |
+
"language_info": {
|
22 |
+
"name": "python"
|
23 |
+
}
|
24 |
+
},
|
25 |
+
"nbformat": 4,
|
26 |
+
"nbformat_minor": 2
|
27 |
+
}
|
model_utilizer.ipynb
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "code",
|
5 |
+
"execution_count": 13,
|
6 |
+
"metadata": {},
|
7 |
+
"outputs": [],
|
8 |
+
"source": [
|
9 |
+
"from tensorflow.keras.preprocessing.text import Tokenizer\n",
|
10 |
+
"from tensorflow.keras.preprocessing.sequence import pad_sequences\n",
|
11 |
+
"from tensorflow import keras\n",
|
12 |
+
"from pathlib import Path as pp\n",
|
13 |
+
"\n",
|
14 |
+
"import os\n",
|
15 |
+
"notebook_path = os.getcwd()"
|
16 |
+
]
|
17 |
+
},
|
18 |
+
{
|
19 |
+
"cell_type": "code",
|
20 |
+
"execution_count": 19,
|
21 |
+
"metadata": {},
|
22 |
+
"outputs": [
|
23 |
+
{
|
24 |
+
"ename": "ValueError",
|
25 |
+
"evalue": "File not found: filepath=../imsoumyaneel-sentiment_analysis_llama2.keras. Please ensure the file is an accessible `.keras` zip file.",
|
26 |
+
"output_type": "error",
|
27 |
+
"traceback": [
|
28 |
+
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
29 |
+
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
|
30 |
+
"Cell \u001b[0;32mIn[19], line 15\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m padded_text\n\u001b[1;32m 14\u001b[0m \u001b[38;5;66;03m# load model\u001b[39;00m\n\u001b[0;32m---> 15\u001b[0m model \u001b[38;5;241m=\u001b[39m \u001b[43mkeras\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmodels\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mload_model\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m../imsoumyaneel-sentiment_analysis_llama2.keras\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# Replace \"your_model.h5\" with the path to your trained model\u001b[39;00m\n\u001b[1;32m 17\u001b[0m \u001b[38;5;66;03m# Preprocess the custom input text\u001b[39;00m\n\u001b[1;32m 18\u001b[0m preprocessed_text \u001b[38;5;241m=\u001b[39m preprocess_text(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mi love this thing!\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
|
31 |
+
"File \u001b[0;32m~/Documents/models/twitter_model/.venv/lib/python3.10/site-packages/keras/src/saving/saving_api.py:185\u001b[0m, in \u001b[0;36mload_model\u001b[0;34m(filepath, custom_objects, compile, safe_mode)\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m legacy_h5_format\u001b[38;5;241m.\u001b[39mload_model_from_hdf5(filepath)\n\u001b[1;32m 184\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mstr\u001b[39m(filepath)\u001b[38;5;241m.\u001b[39mendswith(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m.keras\u001b[39m\u001b[38;5;124m\"\u001b[39m):\n\u001b[0;32m--> 185\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 186\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFile not found: filepath=\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mfilepath\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 187\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPlease ensure the file is an accessible `.keras` \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 188\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mzip file.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 189\u001b[0m )\n\u001b[1;32m 190\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 191\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 192\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFile format not supported: filepath=\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mfilepath\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 193\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mKeras 3 only supports V3 `.keras` files and \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 202\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmight have a different name).\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 203\u001b[0m )\n",
|
32 |
+
"\u001b[0;31mValueError\u001b[0m: File not found: filepath=../imsoumyaneel-sentiment_analysis_llama2.keras. Please ensure the file is an accessible `.keras` zip file."
|
33 |
+
]
|
34 |
+
}
|
35 |
+
],
|
36 |
+
"source": [
|
37 |
+
"tokenizer = Tokenizer()\n",
|
38 |
+
"max_length = 200\n",
|
39 |
+
"models_dir = pp(pp(notebook_path).parent, 'models')\n",
|
40 |
+
"\n",
|
41 |
+
"\n",
|
42 |
+
"# use model\n",
|
43 |
+
"def preprocess_text(text):\n",
|
44 |
+
" # Tokenize the text\n",
|
45 |
+
" tokenized_text = tokenizer.texts_to_sequences([text])\n",
|
46 |
+
" # Pad sequences to the same length as training data\n",
|
47 |
+
" padded_text = pad_sequences(tokenized_text, maxlen=max_length, padding='post')\n",
|
48 |
+
" return padded_text\n",
|
49 |
+
"\n",
|
50 |
+
"# load model\n",
|
51 |
+
"model = keras.models.load_model('../imsoumyaneel-sentiment_analysis_llama2.keras') # Replace \"your_model.h5\" with the path to your trained model\n",
|
52 |
+
"\n",
|
53 |
+
"# Preprocess the custom input text\n",
|
54 |
+
"preprocessed_text = preprocess_text(\"i love this thing!\")\n",
|
55 |
+
"\n",
|
56 |
+
"# Make predictions\n",
|
57 |
+
"predictions = model.predict(preprocessed_text)\n",
|
58 |
+
"\n",
|
59 |
+
"predictions[0][0]"
|
60 |
+
]
|
61 |
+
}
|
62 |
+
],
|
63 |
+
"metadata": {
|
64 |
+
"kernelspec": {
|
65 |
+
"display_name": ".venv",
|
66 |
+
"language": "python",
|
67 |
+
"name": "python3"
|
68 |
+
},
|
69 |
+
"language_info": {
|
70 |
+
"codemirror_mode": {
|
71 |
+
"name": "ipython",
|
72 |
+
"version": 3
|
73 |
+
},
|
74 |
+
"file_extension": ".py",
|
75 |
+
"mimetype": "text/x-python",
|
76 |
+
"name": "python",
|
77 |
+
"nbconvert_exporter": "python",
|
78 |
+
"pygments_lexer": "ipython3",
|
79 |
+
"version": "3.10.12"
|
80 |
+
}
|
81 |
+
},
|
82 |
+
"nbformat": 4,
|
83 |
+
"nbformat_minor": 2
|
84 |
+
}
|
notes/mnist.ipynb
ADDED
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "code",
|
5 |
+
"execution_count": 14,
|
6 |
+
"id": "b2d6f096-6123-4dd0-ae4f-c9abf70889c4",
|
7 |
+
"metadata": {
|
8 |
+
"execution": {
|
9 |
+
"iopub.execute_input": "2024-04-03T17:21:13.044450Z",
|
10 |
+
"iopub.status.busy": "2024-04-03T17:21:13.043912Z",
|
11 |
+
"iopub.status.idle": "2024-04-03T17:21:13.374087Z",
|
12 |
+
"shell.execute_reply": "2024-04-03T17:21:13.373277Z",
|
13 |
+
"shell.execute_reply.started": "2024-04-03T17:21:13.044419Z"
|
14 |
+
}
|
15 |
+
},
|
16 |
+
"outputs": [
|
17 |
+
{
|
18 |
+
"name": "stderr",
|
19 |
+
"output_type": "stream",
|
20 |
+
"text": [
|
21 |
+
"Reusing dataset mnist (/root/.cache/huggingface/datasets/mnist/mnist/1.0.0/fda16c03c4ecfb13f165ba7e29cf38129ce035011519968cdaf74894ce91c9d4)\n"
|
22 |
+
]
|
23 |
+
},
|
24 |
+
{
|
25 |
+
"data": {
|
26 |
+
"application/vnd.jupyter.widget-view+json": {
|
27 |
+
"model_id": "cd2dd3c8b22b49718b3c66585ca3559c",
|
28 |
+
"version_major": 2,
|
29 |
+
"version_minor": 0
|
30 |
+
},
|
31 |
+
"text/plain": [
|
32 |
+
" 0%| | 0/2 [00:00<?, ?it/s]"
|
33 |
+
]
|
34 |
+
},
|
35 |
+
"metadata": {},
|
36 |
+
"output_type": "display_data"
|
37 |
+
}
|
38 |
+
],
|
39 |
+
"source": [
|
40 |
+
"from datasets import load_dataset\n",
|
41 |
+
"\n",
|
42 |
+
"dataset = load_dataset(\"mnist\")"
|
43 |
+
]
|
44 |
+
},
|
45 |
+
{
|
46 |
+
"cell_type": "code",
|
47 |
+
"execution_count": 16,
|
48 |
+
"id": "7c5ea43d-6a70-4deb-a90e-1d7758c961a3",
|
49 |
+
"metadata": {
|
50 |
+
"execution": {
|
51 |
+
"iopub.execute_input": "2024-04-03T17:21:27.628082Z",
|
52 |
+
"iopub.status.busy": "2024-04-03T17:21:27.627048Z",
|
53 |
+
"iopub.status.idle": "2024-04-03T17:21:27.632687Z",
|
54 |
+
"shell.execute_reply": "2024-04-03T17:21:27.632002Z",
|
55 |
+
"shell.execute_reply.started": "2024-04-03T17:21:27.628051Z"
|
56 |
+
}
|
57 |
+
},
|
58 |
+
"outputs": [],
|
59 |
+
"source": [
|
60 |
+
"import numpy as np\n",
|
61 |
+
"from PIL import Image\n",
|
62 |
+
"import io\n",
|
63 |
+
"\n",
|
64 |
+
"def convert(byte_like_str_image):\n",
|
65 |
+
" return np.asarray(Image.open(io.BytesIO(byte_like_str_image['bytes'])))\n"
|
66 |
+
]
|
67 |
+
},
|
68 |
+
{
|
69 |
+
"cell_type": "code",
|
70 |
+
"execution_count": 18,
|
71 |
+
"id": "daafde17-8100-4f49-b27e-8aad43b129c6",
|
72 |
+
"metadata": {
|
73 |
+
"execution": {
|
74 |
+
"iopub.execute_input": "2024-04-03T17:22:20.343090Z",
|
75 |
+
"iopub.status.busy": "2024-04-03T17:22:20.341876Z",
|
76 |
+
"iopub.status.idle": "2024-04-03T17:22:27.888815Z",
|
77 |
+
"shell.execute_reply": "2024-04-03T17:22:27.887812Z",
|
78 |
+
"shell.execute_reply.started": "2024-04-03T17:22:20.343047Z"
|
79 |
+
}
|
80 |
+
},
|
81 |
+
"outputs": [],
|
82 |
+
"source": [
|
83 |
+
"dataset_train = dataset['train'].to_pandas()\n",
|
84 |
+
"dataset_train['image'] = dataset_train['image'].map(convert)\n",
|
85 |
+
"\n",
|
86 |
+
"dataset_test = dataset['test'].to_pandas()\n",
|
87 |
+
"dataset_test['image'] = dataset_test['image'].map(convert)\n"
|
88 |
+
]
|
89 |
+
},
|
90 |
+
{
|
91 |
+
"cell_type": "code",
|
92 |
+
"execution_count": null,
|
93 |
+
"id": "72022fd2-000d-4d5c-88d5-9afc62c283d5",
|
94 |
+
"metadata": {},
|
95 |
+
"outputs": [],
|
96 |
+
"source": []
|
97 |
+
}
|
98 |
+
],
|
99 |
+
"metadata": {
|
100 |
+
"kernelspec": {
|
101 |
+
"display_name": "Python 3 (ipykernel)",
|
102 |
+
"language": "python",
|
103 |
+
"name": "python3"
|
104 |
+
},
|
105 |
+
"language_info": {
|
106 |
+
"codemirror_mode": {
|
107 |
+
"name": "ipython",
|
108 |
+
"version": 3
|
109 |
+
},
|
110 |
+
"file_extension": ".py",
|
111 |
+
"mimetype": "text/x-python",
|
112 |
+
"name": "python",
|
113 |
+
"nbconvert_exporter": "python",
|
114 |
+
"pygments_lexer": "ipython3",
|
115 |
+
"version": "3.9.16"
|
116 |
+
}
|
117 |
+
},
|
118 |
+
"nbformat": 4,
|
119 |
+
"nbformat_minor": 5
|
120 |
+
}
|