Fashion-MNIST és un conjunt de dades d'imatges d'articles de Zalando, que consta d'un conjunt d'entrenament de 60,000 exemples i un conjunt de prova de 10,000 exemples. Cada exemple és una imatge en escala de grisos de 28×28, associada a una etiqueta de 10 classes. El conjunt de dades serveix com a reemplaçament directe del conjunt de dades MNIST original per analitzar els algorismes d'aprenentatge automàtic, proporcionant una alternativa més difícil a causa de la seva complexitat i variabilitat en les imatges relacionades amb la moda.
Per utilitzar pràcticament el conjunt de dades Fashion-MNIST a la plataforma AI de Google Cloud, cal seguir diversos passos estructurats que incloguin la preparació de dades, la formació del model, el desplegament i l'avaluació. Cadascuna d'aquestes etapes requereix una comprensió completa tant del conjunt de dades com de l'entorn de Google Cloud.
Pas 1: Configuració de Google Cloud Environment
Abans d'utilitzar el conjunt de dades, assegureu-vos que teniu un compte de Google Cloud. Configura un projecte nou a Google Cloud Console. Activeu la facturació del vostre projecte i activeu l'API Cloud AI Platform. Aquesta configuració és important, ja que us permet aprofitar la robusta infraestructura de Google per a les tasques d'aprenentatge automàtic.
1. Creeu un projecte de Google Cloud: aneu a Google Cloud Console i creeu un projecte nou. Assigna un nom únic al teu projecte per identificar-lo fàcilment.
2. Activa les API: aneu al tauler d'API i serveis i activeu l'API Cloud AI Platform. Aquesta API és essencial per desplegar models d'aprenentatge automàtic a Google Cloud.
3. Instal·leu Cloud SDK: Baixeu i instal·leu l'SDK de Google Cloud a la vostra màquina local. Aquest SDK proporciona l'eina de línia d'ordres "gcloud", que és necessària per interactuar amb els vostres recursos de Google Cloud.
Pas 2: preparació del conjunt de dades Fashion-MNIST
Es pot accedir al conjunt de dades Fashion-MNIST des de diverses fonts, inclòs el dipòsit oficial de GitHub. És essencial preprocessar el conjunt de dades per assegurar-se que té el format correcte per als models d'entrenament a Google Cloud.
1. Descarrega el conjunt de dades: el conjunt de dades està disponible en diversos formats, incloses les matrius CSV i NumPy. Per als usuaris de TensorFlow, es pot carregar directament mitjançant el mòdul `tensorflow.keras.datasets`.
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. Preprocés de dades: Normalitzeu els valors de píxels de les imatges a l'interval [0, 1] dividint-lo per 255. Aquest pas és important per garantir que el model convergeixi de manera eficient durant l'entrenament.
python train_images = train_images/255.0 test_images = test_images/255.0
3. Reforma i augmenta les dades: Depenent de l'arquitectura del model, és possible que hàgiu de remodelar les dades. A més, tingueu en compte les tècniques d'augment de dades com ara la rotació, el zoom i el gir horitzontal per millorar la robustesa del model.
Pas 3: Desenvolupament del model
Desenvolupar un model d'aprenentatge automàtic adequat per al conjunt de dades Fashion-MNIST. Les xarxes neuronals convolucionals (CNN) són una opció popular a causa de la seva eficàcia en les tasques de classificació d'imatges.
1. Definir l'arquitectura del model: Utilitzeu TensorFlow o PyTorch per definir un model de CNN. Una arquitectura típica pot incloure múltiples capes convolucionals seguides de capes d'agrupació màxima i una capa densa totalment connectada.
python model = tf.keras.Sequential([ tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Conv2D(64, (3, 3), activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ])
2. Compilar el model: Trieu un optimitzador, una funció de pèrdua i mètriques adequats. Per a la classificació multiclasse, s'utilitza habitualment `sparse_categorical_crossentropy`.
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Entrena el model: Ajusteu el model a les dades d'entrenament. Utilitzeu dades de validació per supervisar el rendiment del model i evitar un sobreajustament.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
Pas 4: implementació del model a Google Cloud AI Platform
Un cop s'ha entrenat el model, el següent pas és implementar-lo a Google Cloud AI Platform per a prediccions escalables.
1. Guarda el model: exporteu el model entrenat a un format compatible amb Google Cloud, com ara TensorFlow SavedModel.
python model.save('fashion_mnist_model')
2. Pengeu el model a Google Cloud Storage: utilitzeu l'eina de línia d'ordres `gsutil` per penjar el model a un cub de Google Cloud Storage.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. Creeu un model a la plataforma AI: a Google Cloud Console, aneu a AI Platform > Models i creeu un model nou. Especifiqueu el nom i la regió del model.
4. Desplegueu una versió del model: creeu una versió nova del model especificant la ruta d'emmagatzematge al núvol del model desat. Configureu el tipus de màquina i les opcions d'escalat en funció de les vostres necessitats de predicció.
5. Prova el desplegament: Utilitzeu el servei de predicció de la plataforma AI per provar el model desplegat. Podeu enviar sol·licituds HTTP amb dades d'imatge al punt final del model i rebre prediccions.
python from google.cloud import aiplatform project = 'your-project-id' endpoint_id = 'your-endpoint-id' location = 'us-central1' aiplatform.init(project=project, location=location) endpoint = aiplatform.Endpoint(endpoint_id=endpoint_id) # Example prediction response = endpoint.predict(instances=[test_images[0].tolist()]) print(response)
Pas 5: Avaluació i iteració del model
Després del desplegament, és important avaluar el rendiment del model i repetir el disseny per millorar la precisió i l'eficiència.
1. Supervisar el rendiment del model: Utilitzeu les eines de supervisió de Google Cloud per fer un seguiment de les mètriques de rendiment del model, com ara la latència, el rendiment i la precisió de la predicció. Aquestes dades són inestimables per identificar colls d'ampolla i àrees de millora.
2. Proves A/B: Realitzeu proves A/B per comparar diferents versions de models. Aquest enfocament ajuda a entendre l'impacte dels canvis i a seleccionar el model de millor rendiment.
3. Integració i desplegament continus (CI/CD): Implementar pràctiques CI/CD per automatitzar el desplegament de noves versions de models. Aquesta configuració garanteix que les millores es lliuren ràpidament a la producció.
4. Bucle de realimentació: estableix un bucle de retroalimentació amb els usuaris finals per obtenir informació sobre les prediccions del model. Utilitzeu aquests comentaris per afinar el model i millorar-ne la rellevància per a les aplicacions del món real.
5. Reformació amb noves dades: Actualitzeu regularment el model amb dades noves per mantenir la seva precisió al llarg del temps. Aquesta pràctica és especialment important a la indústria de la moda, on les tendències i els estils evolucionen ràpidament.
El conjunt de dades Fashion-MNIST ofereix un cas d'ús pràctic per desplegar models de classificació d'imatges a la plataforma AI de Google Cloud. Seguint els passos descrits, es pot aprofitar eficaçment la infraestructura de Google per crear, desplegar i mantenir models d'aprenentatge automàtic escalables. Aquest procés no només millora la precisió i el rendiment del model, sinó que també garanteix la seva aplicabilitat a escenaris del món real de la indústria de la moda.
Google actualitza amb freqüència la seva plataforma AI (a partir del 2024 va evolucionar cap a la plataforma Vertex AI). Si trobeu algun problema amb aquestes actualitzacions, també podeu provar el codi següent:
python import google.auth import google.auth.transport.requests import requests import json from tensorflow.keras.datasets import fashion_mnist import numpy as np # Load and preprocess Fashion MNIST data (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data() test_images = test_images/255.0 # Add channel dimension to all test images test_images = test_images.reshape(-1, 28, 28, 1) # Prepare your model and project details project_id = 'project_id' model_name = 'modelname' model_version = 'V1' region = 'europe-west3' # AI Platform prediction endpoint URL url = f'https://{region}-ml.googleapis.com/v1/projects/{project_id}/models/{model_name}/versions/{model_version}:predict' # Authenticate and get the auth token credentials, _ = google.auth.default() auth_req = google.auth.transport.requests.Request() credentials.refresh(auth_req) auth_token = credentials.token # Set up headers for the request headers = { 'Authorization': f'Bearer {auth_token}', 'Content-Type': 'application/json' } class_labels = [ "T-shirt/top", "Trouser", "Pullover", "Dress", "Coat", "Sandal", "Shirt", "Sneaker", "Bag", "Ankle boot" ] # Loop through the first 6 test images for i in range(6): # Prepare the instance for prediction instance = test_images[i].tolist() # Make the request body data = json.dumps({"instances": [instance]}) # Send the request response = requests.post(url, headers=headers, data=data) response_json = response.json() # Extract the predictions predicted_probs = response_json['predictions'][0] # Get the index of the highest probability predicted_index = np.argmax(predicted_probs) predicted_label = class_labels[predicted_index] predicted_probability = predicted_probs[predicted_index] # Print the result in a more readable format print(response_json) print(f"Image {i + 1}: Predicted class: {predicted_label} ({predicted_index}) with probability {predicted_probability:.10f}")
Altres preguntes i respostes recents sobre EITC/AI/GCML Google Cloud Machine Learning:
- Heu esmentat molts tipus d'algorismes com ara regressió lineal, arbres de decisió. Tot això són xarxes neuronals?
- Quines són les mètriques d'avaluació del rendiment d'un model?
- Què és la regressió lineal?
- És possible combinar diferents models de ML i crear una IA mestra?
- Quins són alguns dels algorismes més comuns utilitzats en l'aprenentatge automàtic?
- Com crear una versió del model?
- Com aplicar els 7 passos de ML en un context d'exemple?
- Com es pot aplicar l'aprenentatge automàtic a les dades de permisos de construcció?
- Per què es van suspendre les taules AutoML i què les succeeix?
- Quina és la tasca d'interpretar els doodles dibuixats pels jugadors en el context de la IA?
Consulta més preguntes i respostes a EITC/AI/GCML Google Cloud Machine Learning