{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "\n", "data_path = 'dataset/train/dataframemulticlasse.csv'\n", "test_path = 'dataset/test/dataframemulticlasse_test.csv'\n", "\n", "df_train = pd.read_csv(data_path)\n", "df_test = pd.read_csv(test_path)\n", "\n", "train_data = df_train['text']\n", "train_labels = df_train.label\n", "\n", "test_data = df_test.text\n", "test_labels = df_test.label\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 La possibilità di assistere a parate culturali...\n", "1 Partecipare a workshop di mindfulness o medita...\n", "2 Esplorare parchi divertimenti tematici o attra...\n", "3 La visita a centri di ricerca marina o laborat...\n", "4 Partecipare a corsi di cucina etnica permette ...\n", "Name: text, dtype: object\n", "0 Gustare il gelato artigianale a Firenze, in un...\n", "1 Esplorare i mercati galleggianti della Thailan...\n", "2 Assaggiare il sushi fresco a Tokyo, direttamen...\n", "3 Degustare il formaggio francese in una fromage...\n", "4 Assaporare la paella valenciana in Spagna, con...\n", "Name: text, dtype: object\n", "0 travel and food\n", "1 travel and food\n", "2 travel and food\n", "3 travel and food\n", "4 travel and food\n", " ... \n", "475 cultural activities\n", "476 cultural activities\n", "477 cultural activities\n", "478 cultural activities\n", "479 cultural activities\n", "Name: label, Length: 480, dtype: object\n" ] } ], "source": [ "print(train_data.head())\n", "print(test_data.head())\n", "print(test_labels)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2400\n" ] } ], "source": [ "y_train = []\n", "\n", "for label in train_labels:\n", " if label=='travel and food':\n", " y_train.append([1, 0, 0])\n", " elif label=='shopping':\n", " y_train.append([0, 1, 0])\n", " else:\n", " y_train.append([0, 0, 1])\n", "\n", "print(len(y_train))\n", "\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "480\n" ] } ], "source": [ "y_test = []\n", "\n", "for label in test_labels:\n", " if label=='travel and food':\n", " y_test.append([1, 0, 0])\n", " elif label=='shopping':\n", " y_test.append([0, 1, 0])\n", " else:\n", " y_test.append([0, 0, 1])\n", "\n", "print(len(y_test))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 Gustare il gelato artigianale a Firenze, in un...\n", "1 Esplorare i mercati galleggianti della Thailan...\n", "2 Assaggiare il sushi fresco a Tokyo, direttamen...\n", "3 Degustare il formaggio francese in una fromage...\n", "4 Assaporare la paella valenciana in Spagna, con...\n", "Name: text, dtype: object" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "train_data.head()\n", "test_data.head()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "#Pre-processamento dei dati il metodo riceve in input una stringa e ne restituisce il suo pre-processamento\n", "from nltk.tokenize import word_tokenize\n", "from nltk.corpus import stopwords\n", "from nltk.stem import WordNetLemmatizer\n", "import string\n", "\n", "def preprocess_text(text):\n", " #Lower text\n", " tokens = word_tokenize(text.lower())\n", " #Rimozione stop words\n", " filtered_tokens = [token for token in tokens if token not in stopwords.words('italian')]\n", " #Lemmatizzazione\n", " lemmatizer = WordNetLemmatizer()\n", " lemmatized_tokens = [lemmatizer.lemmatize(token) for token in filtered_tokens]\n", " #Join lemmatizzazione del testo\n", " processed_text = ' '.join(lemmatized_tokens)\n", " #Eliminazione punteggiatura\n", " return processed_text.translate(str.maketrans('','', string.punctuation))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "x_train = train_data.apply(preprocess_text)\n", "x_test = test_data.apply(preprocess_text)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "possibilità assistere parate culturali sfilate costumi tradizionali offre spettacolo vibrante colorato \n" ] } ], "source": [ "print(x_train[0])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2024-04-15 10:24:34.934289: I external/local_tsl/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", "2024-04-15 10:24:34.972620: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", "2024-04-15 10:24:34.972649: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", "2024-04-15 10:24:34.973617: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", "2024-04-15 10:24:34.979499: I external/local_tsl/tsl/cuda/cudart_stub.cc:31] Could not find cuda drivers on your machine, GPU will not be used.\n", "2024-04-15 10:24:34.980270: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", "To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", "2024-04-15 10:24:35.953169: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Found 3919 unique tokens\n", "Found 4573 unique tokens\n" ] } ], "source": [ "#Vettorizzazione del testo tramite tokenizzazione\n", "from keras.preprocessing.text import Tokenizer\n", "from keras.preprocessing.sequence import pad_sequences\n", "import numpy as np\n", "\n", "maxlen = 50\n", "max_words = 10000\n", "\n", "\n", "#Train\n", "tokenizer = Tokenizer(num_words=max_words)\n", "tokenizer.fit_on_texts(x_train)\n", "sequences = tokenizer.texts_to_sequences(x_train)\n", "word_index = tokenizer.word_index\n", "print('Found %s unique tokens' % len(word_index))\n", "\n", "\n", "x_train = pad_sequences(sequences, maxlen=maxlen)\n", "y_train = np.asarray(y_train)\n", "indices = np.arange(x_train.shape[0])\n", "\n", "np.random.shuffle(indices)\n", "x_train = x_train[indices]\n", "y_train = y_train[indices]\n", "\n", "\n", "#Test\n", "tokenizer.fit_on_texts(x_test)\n", "sequences = tokenizer.texts_to_sequences(x_test)\n", "word_index = tokenizer.word_index\n", "print('Found %s unique tokens' % len(word_index))\n", "\n", "x_test = pad_sequences(sequences, maxlen=maxlen)\n", "y_test = np.asarray(y_test)\n", "indices = np.arange(x_test.shape[0])\n", "\n", "np.random.shuffle(indices)\n", "x_test = x_test[indices]\n", "y_test = y_test[indices]\n", "\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 66 1 665 762 11 664 38 269]\n", "[0 1 0]\n" ] } ], "source": [ "print(x_train[0])\n", "print(y_train[0])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 154 168 724 843 66 72 132]\n", "[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 154 168 724 843 66 72 132]\n" ] } ], "source": [ "print(x_test[0])\n", "print(x_test[0])" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/100\n", "50/50 [==============================] - 1s 6ms/step - loss: 57.7213 - acc: 0.3562 - val_loss: 31.4119 - val_acc: 0.4521\n", "Epoch 2/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 19.3110 - acc: 0.3963 - val_loss: 18.6374 - val_acc: 0.2438\n", "Epoch 3/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 13.5844 - acc: 0.4267 - val_loss: 21.8207 - val_acc: 0.2042\n", "Epoch 4/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 9.6498 - acc: 0.4650 - val_loss: 14.9767 - val_acc: 0.4021\n", "Epoch 5/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 7.9024 - acc: 0.4708 - val_loss: 12.5779 - val_acc: 0.3354\n", "Epoch 6/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 6.1975 - acc: 0.5183 - val_loss: 10.9874 - val_acc: 0.3958\n", "Epoch 7/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 5.1058 - acc: 0.5400 - val_loss: 13.4741 - val_acc: 0.2396\n", "Epoch 8/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 4.6071 - acc: 0.5533 - val_loss: 12.6782 - val_acc: 0.2833\n", "Epoch 9/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 5.5174 - acc: 0.5450 - val_loss: 11.8935 - val_acc: 0.3229\n", "Epoch 10/100\n", "50/50 [==============================] - 0s 4ms/step - loss: 4.9561 - acc: 0.5633 - val_loss: 10.2808 - val_acc: 0.2500\n", "Epoch 11/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 3.7697 - acc: 0.5721 - val_loss: 11.3306 - val_acc: 0.2750\n", "Epoch 12/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 3.3814 - acc: 0.5929 - val_loss: 10.8400 - val_acc: 0.3125\n", "Epoch 13/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 3.0572 - acc: 0.6108 - val_loss: 10.3812 - val_acc: 0.1958\n", "Epoch 14/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 3.3121 - acc: 0.6071 - val_loss: 10.8674 - val_acc: 0.1417\n", "Epoch 15/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 3.1069 - acc: 0.6054 - val_loss: 10.6820 - val_acc: 0.2937\n", "Epoch 16/100\n", "50/50 [==============================] - 0s 4ms/step - loss: 2.8333 - acc: 0.6250 - val_loss: 9.2689 - val_acc: 0.3063\n", "Epoch 17/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 3.0605 - acc: 0.6150 - val_loss: 8.6669 - val_acc: 0.3167\n", "Epoch 18/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 2.1812 - acc: 0.6504 - val_loss: 9.9279 - val_acc: 0.2958\n", "Epoch 19/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 2.2207 - acc: 0.6521 - val_loss: 9.3583 - val_acc: 0.2583\n", "Epoch 20/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 2.1138 - acc: 0.6683 - val_loss: 8.7615 - val_acc: 0.2812\n", "Epoch 21/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 2.4420 - acc: 0.6442 - val_loss: 9.2964 - val_acc: 0.2292\n", "Epoch 22/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 2.0800 - acc: 0.6654 - val_loss: 8.8549 - val_acc: 0.2417\n", "Epoch 23/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.6823 - acc: 0.6871 - val_loss: 8.4278 - val_acc: 0.2854\n", "Epoch 24/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.6339 - acc: 0.6829 - val_loss: 8.4131 - val_acc: 0.3458\n", "Epoch 25/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.7133 - acc: 0.7088 - val_loss: 7.5806 - val_acc: 0.3167\n", "Epoch 26/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.6466 - acc: 0.6917 - val_loss: 8.6205 - val_acc: 0.3479\n", "Epoch 27/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.4558 - acc: 0.7163 - val_loss: 8.4144 - val_acc: 0.2333\n", "Epoch 28/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.4888 - acc: 0.7071 - val_loss: 7.8890 - val_acc: 0.3146\n", "Epoch 29/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.6007 - acc: 0.6996 - val_loss: 10.0653 - val_acc: 0.2896\n", "Epoch 30/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.6436 - acc: 0.7067 - val_loss: 8.0090 - val_acc: 0.2000\n", "Epoch 31/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.4242 - acc: 0.7063 - val_loss: 6.8848 - val_acc: 0.3375\n", "Epoch 32/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.4354 - acc: 0.7146 - val_loss: 7.6492 - val_acc: 0.2479\n", "Epoch 33/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.5739 - acc: 0.6988 - val_loss: 8.2795 - val_acc: 0.2625\n", "Epoch 34/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.4290 - acc: 0.6992 - val_loss: 7.7615 - val_acc: 0.3271\n", "Epoch 35/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.5479 - acc: 0.7050 - val_loss: 7.4564 - val_acc: 0.2896\n", "Epoch 36/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.0855 - acc: 0.7471 - val_loss: 7.2132 - val_acc: 0.3146\n", "Epoch 37/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.6617 - acc: 0.6938 - val_loss: 8.0104 - val_acc: 0.2833\n", "Epoch 38/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.2275 - acc: 0.7396 - val_loss: 7.7752 - val_acc: 0.3125\n", "Epoch 39/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.2972 - acc: 0.7125 - val_loss: 7.7986 - val_acc: 0.2562\n", "Epoch 40/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.0149 - acc: 0.7533 - val_loss: 6.6135 - val_acc: 0.2896\n", "Epoch 41/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.8835 - acc: 0.7708 - val_loss: 6.3778 - val_acc: 0.3187\n", "Epoch 42/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.1054 - acc: 0.7408 - val_loss: 7.7386 - val_acc: 0.3479\n", "Epoch 43/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.2514 - acc: 0.7400 - val_loss: 6.4279 - val_acc: 0.3417\n", "Epoch 44/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.1826 - acc: 0.7454 - val_loss: 6.5688 - val_acc: 0.2917\n", "Epoch 45/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.4454 - acc: 0.7258 - val_loss: 8.4988 - val_acc: 0.2646\n", "Epoch 46/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.0288 - acc: 0.7567 - val_loss: 6.3825 - val_acc: 0.2458\n", "Epoch 47/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.1869 - acc: 0.7421 - val_loss: 6.7040 - val_acc: 0.3375\n", "Epoch 48/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.2335 - acc: 0.7483 - val_loss: 6.7427 - val_acc: 0.2521\n", "Epoch 49/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.1742 - acc: 0.7371 - val_loss: 7.0903 - val_acc: 0.2708\n", "Epoch 50/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.7814 - acc: 0.7821 - val_loss: 7.2528 - val_acc: 0.2396\n", "Epoch 51/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.9336 - acc: 0.7625 - val_loss: 6.6921 - val_acc: 0.3104\n", "Epoch 52/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.8222 - acc: 0.7783 - val_loss: 6.9456 - val_acc: 0.2854\n", "Epoch 53/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.0307 - acc: 0.7654 - val_loss: 7.0629 - val_acc: 0.2917\n", "Epoch 54/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.4961 - acc: 0.7212 - val_loss: 7.4154 - val_acc: 0.2729\n", "Epoch 55/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.0491 - acc: 0.7617 - val_loss: 7.5476 - val_acc: 0.2292\n", "Epoch 56/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.7880 - acc: 0.7754 - val_loss: 6.0720 - val_acc: 0.3167\n", "Epoch 57/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.6842 - acc: 0.8167 - val_loss: 6.3827 - val_acc: 0.2750\n", "Epoch 58/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.8157 - acc: 0.7850 - val_loss: 5.8507 - val_acc: 0.2812\n", "Epoch 59/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.6714 - acc: 0.8021 - val_loss: 6.4812 - val_acc: 0.3250\n", "Epoch 60/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.8255 - acc: 0.7862 - val_loss: 6.6680 - val_acc: 0.3646\n", "Epoch 61/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.6928 - acc: 0.7942 - val_loss: 6.8407 - val_acc: 0.3688\n", "Epoch 62/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.7837 - acc: 0.7887 - val_loss: 6.4081 - val_acc: 0.2708\n", "Epoch 63/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.7488 - acc: 0.7954 - val_loss: 6.7094 - val_acc: 0.2250\n", "Epoch 64/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.8052 - acc: 0.7829 - val_loss: 6.0939 - val_acc: 0.3542\n", "Epoch 65/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.8356 - acc: 0.7812 - val_loss: 6.5050 - val_acc: 0.2458\n", "Epoch 66/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.6118 - acc: 0.8133 - val_loss: 6.2517 - val_acc: 0.2646\n", "Epoch 67/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.5539 - acc: 0.8221 - val_loss: 6.7414 - val_acc: 0.2146\n", "Epoch 68/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.6828 - acc: 0.7983 - val_loss: 6.0812 - val_acc: 0.2958\n", "Epoch 69/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.7392 - acc: 0.7958 - val_loss: 6.1747 - val_acc: 0.3146\n", "Epoch 70/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.6996 - acc: 0.7971 - val_loss: 6.8373 - val_acc: 0.2375\n", "Epoch 71/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.6457 - acc: 0.8025 - val_loss: 6.2975 - val_acc: 0.2896\n", "Epoch 72/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.5665 - acc: 0.8292 - val_loss: 6.5490 - val_acc: 0.3187\n", "Epoch 73/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.6337 - acc: 0.8142 - val_loss: 6.1048 - val_acc: 0.2208\n", "Epoch 74/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.8613 - acc: 0.7821 - val_loss: 5.5585 - val_acc: 0.2771\n", "Epoch 75/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.7536 - acc: 0.7979 - val_loss: 6.4135 - val_acc: 0.2333\n", "Epoch 76/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.5829 - acc: 0.8146 - val_loss: 5.3976 - val_acc: 0.2771\n", "Epoch 77/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.5517 - acc: 0.8221 - val_loss: 6.4450 - val_acc: 0.3021\n", "Epoch 78/100\n", "50/50 [==============================] - 0s 4ms/step - loss: 0.7454 - acc: 0.7896 - val_loss: 5.6916 - val_acc: 0.3500\n", "Epoch 79/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.9174 - acc: 0.7792 - val_loss: 6.2204 - val_acc: 0.3000\n", "Epoch 80/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.6210 - acc: 0.8254 - val_loss: 5.8649 - val_acc: 0.2958\n", "Epoch 81/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.5516 - acc: 0.8333 - val_loss: 5.6621 - val_acc: 0.2958\n", "Epoch 82/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.5606 - acc: 0.8333 - val_loss: 5.6664 - val_acc: 0.2937\n", "Epoch 83/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.5652 - acc: 0.8213 - val_loss: 5.7887 - val_acc: 0.3125\n", "Epoch 84/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.5395 - acc: 0.8325 - val_loss: 5.8723 - val_acc: 0.2625\n", "Epoch 85/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.4743 - acc: 0.8421 - val_loss: 6.0312 - val_acc: 0.2708\n", "Epoch 86/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.4531 - acc: 0.8567 - val_loss: 5.8157 - val_acc: 0.2542\n", "Epoch 87/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.7331 - acc: 0.7979 - val_loss: 6.1701 - val_acc: 0.3000\n", "Epoch 88/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.0382 - acc: 0.7450 - val_loss: 6.6944 - val_acc: 0.3479\n", "Epoch 89/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.7748 - acc: 0.7829 - val_loss: 5.9408 - val_acc: 0.2896\n", "Epoch 90/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.6449 - acc: 0.8087 - val_loss: 6.6202 - val_acc: 0.2625\n", "Epoch 91/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.7784 - acc: 0.7817 - val_loss: 6.6542 - val_acc: 0.2292\n", "Epoch 92/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 1.0009 - acc: 0.7575 - val_loss: 6.3484 - val_acc: 0.2313\n", "Epoch 93/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.6815 - acc: 0.8037 - val_loss: 5.1077 - val_acc: 0.2896\n", "Epoch 94/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.5399 - acc: 0.8288 - val_loss: 5.1831 - val_acc: 0.2854\n", "Epoch 95/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.5971 - acc: 0.8304 - val_loss: 5.9116 - val_acc: 0.2208\n", "Epoch 96/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.5117 - acc: 0.8450 - val_loss: 4.9103 - val_acc: 0.3417\n", "Epoch 97/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.3914 - acc: 0.8754 - val_loss: 5.0447 - val_acc: 0.2812\n", "Epoch 98/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.3166 - acc: 0.8929 - val_loss: 5.1480 - val_acc: 0.3146\n", "Epoch 99/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.4117 - acc: 0.8658 - val_loss: 5.3243 - val_acc: 0.2875\n", "Epoch 100/100\n", "50/50 [==============================] - 0s 3ms/step - loss: 0.3687 - acc: 0.8788 - val_loss: 5.9304 - val_acc: 0.2313\n" ] } ], "source": [ "#Definizione del modello e training con/senza word embedding\n", "\n", "from keras.models import Sequential\n", "from keras.layers import Dense\n", "\n", "model = Sequential()\n", "\n", "# model.add(Dense(256, activation='relu'))\n", "model.add(Dense(256, activation='relu'))\n", "model.add(Dense(64, activation='relu'))\n", "model.add(Dense(3, activation='softmax'))\n", "\n", "model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['acc'])\n", "\n", "history = model.fit(x_train, y_train, epochs=100, batch_size=48, validation_data=(x_test, y_test))" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential_16\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " dense_43 (Dense) (48, 256) 13056 \n", " \n", " dense_44 (Dense) (48, 64) 16448 \n", " \n", " dense_45 (Dense) (48, 3) 195 \n", " \n", "=================================================================\n", "Total params: 29699 (116.01 KB)\n", "Trainable params: 29699 (116.01 KB)\n", "Non-trainable params: 0 (0.00 Byte)\n", "_________________________________________________________________\n" ] } ], "source": [ "model.summary()" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGxCAYAAACwbLZkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACMXklEQVR4nO2deXgT1f7G33RvgZa9FFpKEdlRBFwA2URBcEERRZBNQUVEQVz5oYKI4nVB0AuoIHAVQfBSxQ21sgiKCiIoyiJisRWKbFpAoKXp+f1x7slMkkkyk6VJ2/fzPHmSTGY5mUzmvOe7HZsQQoAQQgghJExEhbsBhBBCCKncUIwQQgghJKxQjBBCCCEkrFCMEEIIISSsUIwQQgghJKxQjBBCCCEkrFCMEEIIISSsUIwQQgghJKxQjBBCCCEkrFCMkDLDZrOZeqxbty6g40yZMgU2m82vbdetWxeUNkQ6I0aMQKNGjSLiuI0aNcKIESN8bhvIb7Nx40ZMmTIFf//9t9tn3bt3R/fu3S3vkxASPGLC3QBSefj666+d3j/55JNYu3Yt1qxZ47S8ZcuWAR1n1KhRuPLKK/3atl27dvj6668DbgMxz7vvvovk5OSQHmPjxo144oknMGLECFSvXt3pszlz5oT02IQQ31CMkDLjkksucXpfp04dREVFuS135dSpU0hKSjJ9nPT0dKSnp/vVxuTkZJ/tIcHlggsuCOvxKTzNcfbsWdhsNsTEsNsgwYduGhJRdO/eHa1bt8b69evRqVMnJCUl4bbbbgMALFu2DL169UJaWhoSExPRokULPPLII/jnn3+c9mHkpmnUqBGuvvpqfPLJJ2jXrh0SExPRvHlzLFiwwGk9I1fAiBEjULVqVfz666/o27cvqlatioyMDNx///0oKipy2v6PP/7AgAEDUK1aNVSvXh233HILNm/eDJvNhkWLFnn97ocPH8aYMWPQsmVLVK1aFXXr1sVll12GDRs2OK23b98+2Gw2PP/885gxYwaysrJQtWpVdOzYEd98843bfhctWoRmzZohPj4eLVq0wBtvvOG1HYrrrrsOmZmZKC0tdfvs4osvRrt27RzvZ8+eja5du6Ju3bqoUqUK2rRpg2effRZnz571eRwjN82uXbtw5ZVXIikpCbVr18bo0aNx4sQJt21zcnLQr18/pKenIyEhAU2aNMGdd96JI0eOONaZMmUKHnzwQQBAVlaWmzvQyE1z7NgxjBkzBg0aNEBcXBwaN26MSZMmuf3eNpsNY8eOxZtvvokWLVogKSkJ559/Pj788EOf3/vMmTO4//770bZtW6SkpKBmzZro2LEjVq5c6bZuaWkpXn75ZbRt2xaJiYmoXr06LrnkErz//vtO6y1ZsgQdO3ZE1apVUbVqVbRt2xavv/6613NtdA7U/+DNN9/E/fffjwYNGiA+Ph6//vqr6esUAIqKijB16lS0aNECCQkJqFWrFnr06IGNGzcCAHr27InmzZvDdb5WIQSaNGmCq666yud5JBUDSlwScRQUFGDIkCF46KGH8PTTTyMqSmrmPXv2oG/fvhg/fjyqVKmCXbt24V//+hc2bdrk5uox4ocffsD999+PRx55BKmpqZg/fz5GjhyJJk2aoGvXrl63PXv2LK699lqMHDkS999/P9avX48nn3wSKSkpePzxxwEA//zzD3r06IFjx47hX//6F5o0aYJPPvkEAwcONPW9jx07BgCYPHky6tWrh5MnT+Ldd99F9+7dsXr1arcOc/bs2WjevDlmzpwJAHjsscfQt29f5ObmIiUlBYAUIrfeeiv69euHF154AYWFhZgyZQqKiooc59UTt912G/r164c1a9bg8ssvdyzftWsXNm3ahJdeesmxbO/evRg8eDCysrIQFxeHH374AU899RR27drlJvh88eeff6Jbt26IjY3FnDlzkJqairfeegtjx451W3fv3r3o2LEjRo0ahZSUFOzbtw8zZszApZdeiu3btyM2NhajRo3CsWPH8PLLLyM7OxtpaWkAPFtEzpw5gx49emDv3r144okncN5552HDhg2YPn06tm3bho8++shp/Y8++gibN2/G1KlTUbVqVTz77LO4/vrrsXv3bjRu3Njj9ywqKsKxY8fwwAMPoEGDBiguLsbnn3+O/v37Y+HChRg2bJhj3REjRmDx4sUYOXIkpk6diri4OHz//ffYt2+fY53HH38cTz75JPr374/7778fKSkp+Omnn/D7779bOf1OTJw4ER07dsQrr7yCqKgo1K1bF4cPHwbg+zotKSlBnz59sGHDBowfPx6XXXYZSkpK8M033yAvLw+dOnXCuHHj0K9fP6xevdrpGlu1ahX27t3rdI2RCo4gJEwMHz5cVKlSxWlZt27dBACxevVqr9uWlpaKs2fPii+++EIAED/88IPjs8mTJwvXSzszM1MkJCSI33//3bHs9OnTombNmuLOO+90LFu7dq0AINauXevUTgBi+fLlTvvs27evaNasmeP97NmzBQCxatUqp/XuvPNOAUAsXLjQ63dypaSkRJw9e1b07NlTXH/99Y7lubm5AoBo06aNKCkpcSzftGmTACCWLl0qhBDCbreL+vXri3bt2onS0lLHevv27ROxsbEiMzPT6/HPnj0rUlNTxeDBg52WP/TQQyIuLk4cOXLEcDu73S7Onj0r3njjDREdHS2OHTvm+Gz48OFux83MzBTDhw93vH/44YeFzWYT27Ztc1rviiuucPtt9Khr4vfffxcAxMqVKx2fPffccwKAyM3NdduuW7duolu3bo73r7zyiuHv/a9//UsAEJ999pljGQCRmpoqjh8/7lh28OBBERUVJaZPn27YTk+o33vkyJHiggsucCxfv369ACAmTZrkcdvffvtNREdHi1tuucXrMVzPtcL1HKj/QdeuXU232/U6feONNwQAMW/ePI/b2u120bhxY9GvXz+n5X369BHnnHOO03VLKjZ005CIo0aNGrjsssvclv/2228YPHgw6tWrh+joaMTGxqJbt24AgJ07d/rcb9u2bdGwYUPH+4SEBDRt2tTUyNFms+Gaa65xWnbeeec5bfvFF1+gWrVqbsGzgwYN8rl/xSuvvIJ27dohISEBMTExiI2NxerVqw2/31VXXYXo6Gin9gBwtGn37t04cOAABg8e7OS2yszMRKdOnXy2JSYmBkOGDEF2djYKCwsBAHa7HW+++Sb69euHWrVqOdbdunUrrr32WtSqVcvx2wwbNgx2ux2//PKL6e8PAGvXrkWrVq1w/vnnOy0fPHiw27qHDh3C6NGjkZGR4ThfmZmZAMxdE0asWbMGVapUwYABA5yWK/fG6tWrnZb36NED1apVc7xPTU1F3bp1TV1X77zzDjp37oyqVas62v/66687tX3VqlUAgLvvvtvjfnJycmC3272u4w833HCD4XIz1+mqVauQkJDgcLMaERUVhbFjx+LDDz9EXl4eAGnt+uSTTzBmzBi/s+JI+YNihEQcyoyu5+TJk+jSpQu+/fZbTJs2DevWrcPmzZuRnZ0NADh9+rTP/eo7T0V8fLypbZOSkpCQkOC27ZkzZxzvjx49itTUVLdtjZYZMWPGDNx11124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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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6dIFT548MWqhiYiIqOQyOHzY2dnB09NTvVSuXBmArPVYtmwZpk+fjr59+6J+/fr47rvvkJqaio0bNxq94ERERFQyGRw+rl69Cm9vbwQEBOCtt97C9evXAQCxsbFISEhA165d1ds6ODggKCgIR48ezfN46enpSE5O1lqIiIio9DIofLRs2RL//e9/sWfPHqxduxYJCQlo3bo1Hjx4gISEBACAh4eH1j4eHh7q93SZP38+3N3d1Yuvr28hPgYRERGVFAaFj5dffhmvv/46GjRogM6dO2Pnzp0AgO+++069jUKh0NpHCJFrXXZTp05FUlKSeomLizOkSERERFTCFGmorYuLCxo0aICrV6+qR73krOVITEzMVRuSnYODA9zc3LQWIiIiKr2KFD7S09Nx6dIleHl5ISAgAJ6enoiMjFS/n5GRgejoaLRu3brIBSUiIqLSwaDp1T/66CP06tULfn5+SExMxNy5c5GcnIyQkBAoFAqEhoYiPDwcgYGBCAwMRHh4OJydnTFw4EBTlZ+IiIhKGIPCx+3btzFgwADcv38flStXxksvvYRjx47B398fADBp0iQ8e/YMY8eOxaNHj9CyZUvs3bsXrq6uJik8ERERlTwKIYSwdCGyS05Ohru7O5KSktj/g4iIqIQw5P7NZ7sQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkxfBAREZFZMXwQERGRWTF8EBERkVkVKXzMnz8fCoUCoaGh6nVCCISFhcHb2xtOTk4IDg7GhQsXilpOIiIiKiUKHT5OnjyJr776Cg0bNtRav2jRIixZsgQrVqzAyZMn4enpiS5duuDJkydFLiwRERGVfIUKHykpKRg0aBDWrl2L8uXLq9cLIbBs2TJMnz4dffv2Rf369fHdd98hNTUVGzduNFqhiYiIqOQqVPh477330LNnT3Tu3FlrfWxsLBISEtC1a1f1OgcHBwQFBeHo0aM6j5Weno7k5GSthYiIiEovO0N32Lx5M06fPo2TJ0/mei8hIQEA4OHhobXew8MDN2/e1Hm8+fPnY9asWYYWg4iIiEoog2o+4uLiMGHCBGzYsAGOjo55bqdQKLReCyFyrVOZOnUqkpKS1EtcXJwhRSIiIqISxqCaj1OnTiExMRHNmjVTr1MqlTh06BBWrFiBK1euAJA1IF5eXuptEhMTc9WGqDg4OMDBwaEwZSciIqISyKCaj06dOuHcuXOIiYlRL82bN8egQYMQExOD6tWrw9PTE5GRkep9MjIyEB0djdatWxu98ERERFTyGFTz4erqivr162utc3FxQcWKFdXrQ0NDER4ejsDAQAQGBiI8PBzOzs4YOHCg8UpNREREJZbBHU4LMmnSJDx79gxjx47Fo0eP0LJlS+zduxeurq7GPhURERGVQAohhLB0IbJLTk6Gu7s7kpKS4ObmZuniEBERkR4MuX/z2S5ERERkVgwfREREZFYMH0RERGRWDB9ERERkVgwfREREZFYMH0RERGRWDB9ERERkVgwfREREZFYMH0RERGRWDB9ERERkVgwfREREZFYMH0RERGRWDB9ERERkVgwfREREZFYMH0RERGRWDB9ERERkVgwfREREZFYMH0RERGRWDB9ERERkVgwfREREZFYMH0RERGRWDB9ERERkVgwfREREZFYMH0RERGRWDB9ERERkVgwfREREZFYMH0RERGRWDB9ERERkVgwfREREZFYMH0RERGRWDB9ERERkVgwfREREZFYMH0RERGRWDB9ERERkVgwfREREZFYMH0RERGRWDB9ERERkVgwfREREZFYMH0RERGRWDB9ERERkVgwfREREZFYMH0RERGRWVhM+UlOBjz8GRo4EsrIsXRoiIiLrpRBCCEsXIrvk5GS4u7sjKSkJbm5uRjtuWhrg5CS/f/wYcHc32qGJiIisniH3b6up+XB0lAsgwwcRERFZhtWED0BT28HwQUREZDlWFT7KlZNfk5IsWgwiIiKrZlXhgzUfRERElmdQ+Fi9ejUaNmwINzc3uLm5oVWrVti1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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Tracciamento dei risultati\n", "import matplotlib.pyplot as plt\n", "\n", "acc = history.history['acc']\n", "val_acc = history.history['val_acc']\n", "loss = history.history['loss']\n", "val_loss = history.history['val_loss']\n", "\n", "epochs = range(1, len(acc) + 1)\n", "\n", "plt.plot(epochs, acc, 'bo', label='Training acc')\n", "plt.plot(epochs, val_acc, 'b', label='Validation acc')\n", "plt.title('Training and validation accuracy')\n", "plt.legend()\n", "\n", "plt.figure()\n", "\n", "plt.plot(epochs, loss, 'bo', label='Training loss')\n", "plt.plot(epochs, val_loss, 'b', label='Validation loss')\n", "plt.title('Training and validation loss')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "#Salvataggio del modello\n", "\n", "model.save('multiclassification.keras')" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/diceglieg/anaconda3/lib/python3.11/site-packages/keras/src/engine/training.py:3103: UserWarning: You are saving your model as an HDF5 file via `model.save()`. This file format is considered legacy. We recommend using instead the native Keras format, e.g. `model.save('my_model.keras')`.\n", " saving_api.save_model(\n" ] } ], "source": [ "model.save('multiclassification.h5')" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1/1 [==============================] - 0s 52ms/step\n", "Travel and food; Shopping; Cultural activities\n", "[array([77.570816 , 0.2972364, 22.13194 ], dtype=float32)]\n" ] } ], "source": [ "#Test\n", "\n", "#load model\n", "from keras.models import load_model\n", "from keras.preprocessing.sequence import pad_sequences\n", "\n", "loaded_model = load_model('multiclassification.h5')\n", "\n", "sentence = input(\"Enter the sentence: \")\n", "sequence = preprocess_text(sentence)\n", "sequence = tokenizer.texts_to_sequences([sequence])\n", "test = pad_sequences(sequence, maxlen=50)\n", "yhat = loaded_model.predict(test)\n", "\n", "percentages = [pred * 100 for pred in yhat]\n", "\n", "#Provare il curry piccante in India, con una miriade di spezie che esplodono in bocca.\n", "print(\"Travel and food; Shopping; Cultural activities\")\n", "print([out for out in percentages])\n" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "030e154a198946ce9c8bd734085ddaa5", "version_major": 2, "version_minor": 0 }, "text/plain": [ "VBox(children=(HTML(value='
4\u001b[0m push_to_hub_callback \u001b[39m=\u001b[39m PushToHubCallback(\n\u001b[1;32m 5\u001b[0m output_dir\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m/home/diceglieg/NextGenTech/projects/ngt learning/multiclass classification\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 6\u001b[0m tokenizer\u001b[39m=\u001b[39mtokenizer,\n\u001b[1;32m 7\u001b[0m hub_model_id\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mgirolamodiceglie/multiclass-classification\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m 8\u001b[0m )\n", "File \u001b[0;32m~/anaconda3/lib/python3.11/site-packages/transformers/keras_callbacks.py:343\u001b[0m, in \u001b[0;36mPushToHubCallback.__init__\u001b[0;34m(self, output_dir, save_strategy, save_steps, tokenizer, hub_model_id, hub_token, checkpoint, **model_card_args)\u001b[0m\n\u001b[1;32m 340\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mhub_model_id \u001b[39m=\u001b[39m create_repo(repo_id\u001b[39m=\u001b[39mhub_model_id, exist_ok\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m, token\u001b[39m=\u001b[39mhub_token)\u001b[39m.\u001b[39mrepo_id\n\u001b[1;32m 342\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39moutput_dir \u001b[39m=\u001b[39m output_dir\n\u001b[0;32m--> 343\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mrepo \u001b[39m=\u001b[39m Repository(\u001b[39mstr\u001b[39m(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39moutput_dir), clone_from\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mhub_model_id, token\u001b[39m=\u001b[39mhub_token)\n\u001b[1;32m 345\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mtokenizer \u001b[39m=\u001b[39m tokenizer\n\u001b[1;32m 346\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlast_job \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n", "File \u001b[0;32m~/anaconda3/lib/python3.11/site-packages/huggingface_hub/utils/_validators.py:118\u001b[0m, in \u001b[0;36mvalidate_hf_hub_args.._inner_fn\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 115\u001b[0m \u001b[39mif\u001b[39;00m check_use_auth_token:\n\u001b[1;32m 116\u001b[0m kwargs \u001b[39m=\u001b[39m smoothly_deprecate_use_auth_token(fn_name\u001b[39m=\u001b[39mfn\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m, has_token\u001b[39m=\u001b[39mhas_token, kwargs\u001b[39m=\u001b[39mkwargs)\n\u001b[0;32m--> 118\u001b[0m \u001b[39mreturn\u001b[39;00m fn(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n", "File \u001b[0;32m~/anaconda3/lib/python3.11/site-packages/huggingface_hub/repository.py:516\u001b[0m, in \u001b[0;36mRepository.__init__\u001b[0;34m(self, local_dir, clone_from, repo_type, token, git_user, git_email, revision, skip_lfs_files, client)\u001b[0m\n\u001b[1;32m 513\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mhuggingface_token \u001b[39m=\u001b[39m HfFolder\u001b[39m.\u001b[39mget_token()\n\u001b[1;32m 515\u001b[0m \u001b[39mif\u001b[39;00m clone_from \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m--> 516\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mclone_from(repo_url\u001b[39m=\u001b[39mclone_from)\n\u001b[1;32m 517\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 518\u001b[0m \u001b[39mif\u001b[39;00m is_git_repo(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlocal_dir):\n", "File \u001b[0;32m~/anaconda3/lib/python3.11/site-packages/huggingface_hub/utils/_validators.py:118\u001b[0m, in \u001b[0;36mvalidate_hf_hub_args.._inner_fn\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 115\u001b[0m \u001b[39mif\u001b[39;00m check_use_auth_token:\n\u001b[1;32m 116\u001b[0m kwargs \u001b[39m=\u001b[39m smoothly_deprecate_use_auth_token(fn_name\u001b[39m=\u001b[39mfn\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m, has_token\u001b[39m=\u001b[39mhas_token, kwargs\u001b[39m=\u001b[39mkwargs)\n\u001b[0;32m--> 118\u001b[0m \u001b[39mreturn\u001b[39;00m fn(\u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n", "File \u001b[0;32m~/anaconda3/lib/python3.11/site-packages/huggingface_hub/repository.py:680\u001b[0m, in \u001b[0;36mRepository.clone_from\u001b[0;34m(self, repo_url, token)\u001b[0m\n\u001b[1;32m 677\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 678\u001b[0m \u001b[39m# Check if the folder is the root of a git repository\u001b[39;00m\n\u001b[1;32m 679\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m is_git_repo(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlocal_dir):\n\u001b[0;32m--> 680\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mEnvironmentError\u001b[39;00m(\n\u001b[1;32m 681\u001b[0m \u001b[39m\"\u001b[39m\u001b[39mTried to clone a repository in a non-empty folder that isn\u001b[39m\u001b[39m'\u001b[39m\u001b[39mt\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 682\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m a git repository (\u001b[39m\u001b[39m'\u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlocal_dir\u001b[39m}\u001b[39;00m\u001b[39m'\u001b[39m\u001b[39m). If you really want to\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 683\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m do this, do it manually:\u001b[39m\u001b[39m\\n\u001b[39;00m\u001b[39m cd \u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlocal_dir\u001b[39m}\u001b[39;00m\u001b[39m && git init\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 684\u001b[0m \u001b[39m\"\u001b[39m\u001b[39m && git remote add origin && git pull origin main\u001b[39m\u001b[39m\\n\u001b[39;00m\u001b[39m or clone\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 685\u001b[0m \u001b[39m\"\u001b[39m\u001b[39m repo to a new folder and move your existing files there\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 686\u001b[0m \u001b[39m\"\u001b[39m\u001b[39m afterwards.\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 687\u001b[0m )\n\u001b[1;32m 689\u001b[0m \u001b[39mif\u001b[39;00m is_local_clone(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlocal_dir, repo_url):\n\u001b[1;32m 690\u001b[0m logger\u001b[39m.\u001b[39mwarning(\n\u001b[1;32m 691\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlocal_dir\u001b[39m}\u001b[39;00m\u001b[39m is already a clone of \u001b[39m\u001b[39m{\u001b[39;00mclean_repo_url\u001b[39m}\u001b[39;00m\u001b[39m.\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 692\u001b[0m \u001b[39m\"\u001b[39m\u001b[39m Make sure you pull the latest changes with\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 693\u001b[0m \u001b[39m\"\u001b[39m\u001b[39m `repo.git_pull()`.\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 694\u001b[0m )\n", "\u001b[0;31mOSError\u001b[0m: Tried to clone a repository in a non-empty folder that isn't a git repository ('/home/diceglieg/NextGenTech/projects/ngt learning/multiclass classification'). If you really want to do this, do it manually:\n cd /home/diceglieg/NextGenTech/projects/ngt learning/multiclass classification && git init && git remote add origin && git pull origin main\n or clone repo to a new folder and move your existing files there afterwards." ] } ], "source": [ "from transformers import PushToHubCallback\n", "\n", "\n", "push_to_hub_callback = PushToHubCallback(\n", " output_dir=\"/home/diceglieg/NextGenTech/projects/ngt learning/multiclass classification/\",\n", " tokenizer=tokenizer,\n", " hub_model_id=\"girolamodiceglie/multiclass-classification\",\n", ")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.11.5" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }