Fashion-MNIST er et datasæt af Zalandos artikelbilleder, bestående af et træningssæt med 60,000 eksempler og et testsæt med 10,000 eksempler. Hvert eksempel er et 28×28 gråtonebillede, forbundet med en etiket fra 10 klasser. Datasættet fungerer som en direkte drop-in-erstatning for det originale MNIST-datasæt til benchmarking af maskinlæringsalgoritmer, hvilket giver et mere udfordrende alternativ på grund af dets kompleksitet og variabilitet i moderelaterede billeder.
For praktisk at bruge Fashion-MNIST-datasættet i Google Clouds AI-platform skal man følge flere strukturerede trin, der omfatter dataforberedelse, modeltræning, implementering og evaluering. Hvert af disse stadier kræver en omfattende forståelse af både datasættet og Google Cloud-miljøet.
Trin 1: Opsætning af Google Cloud-miljø
Før du bruger datasættet, skal du sikre dig, at du har en Google Cloud-konto. Konfigurer et nyt projekt i Google Cloud Console. Aktiver fakturering for dit projekt, og aktiver Cloud AI Platform API. Denne opsætning er vigtig, da den giver dig mulighed for at udnytte Googles robuste infrastruktur til maskinlæringsopgaver.
1. Opret et Google Cloud-projekt: Naviger til Google Cloud Console og opret et nyt projekt. Tildel et unikt navn til dit projekt for nem identifikation.
2. Aktiver API'er: Gå til API & Services-dashboardet, og aktiver Cloud AI Platform API. Denne API er vigtig for implementering af maskinlæringsmodeller på Google Cloud.
3. Installer Cloud SDK: Download og installer Google Cloud SDK på din lokale maskine. Denne SDK indeholder kommandolinjeværktøjet "gcloud", som er nødvendigt for at interagere med dine Google Cloud-ressourcer.
Trin 2: Forberedelse af Fashion-MNIST-datasættet
Fashion-MNIST-datasættet kan tilgås fra forskellige kilder, herunder det officielle GitHub-lager. Det er vigtigt at forbehandle datasættet for at sikre, at det er i det korrekte format til træningsmodeller på Google Cloud.
1. Download datasættet: Datasættet er tilgængeligt i flere formater, inklusive CSV- og NumPy-arrays. For TensorFlow-brugere kan det indlæses direkte ved hjælp af `tensorflow.keras.datasets`-modulet.
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. Dataforarbejdning: Normaliser pixelværdierne for billederne til området [0, 1] ved at dividere med 255. Dette trin er vigtigt for at sikre, at modellen konvergerer effektivt under træning.
python train_images = train_images/255.0 test_images = test_images/255.0
3. Omform og forstærk data: Afhængigt af modelarkitekturen skal du muligvis omforme dataene. Overvej desuden dataforøgelsesteknikker såsom rotation, zoom og horisontal flip for at forbedre modellens robusthed.
Trin 3: Modeludvikling
Udvikl en maskinlæringsmodel, der passer til Fashion-MNIST-datasættet. Convolutional Neural Networks (CNN'er) er et populært valg på grund af deres effektivitet i billedklassificeringsopgaver.
1. Definer modelarkitekturen: Brug TensorFlow eller PyTorch til at definere en CNN-model. En typisk arkitektur kan omfatte flere foldningslag efterfulgt af max-pooling-lag og et fuldt forbundet tæt lag.
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. Kompiler modellen: Vælg en passende optimering, tabsfunktion og metrics. Til klassificering af flere klasser bruges "sparse_categorical_crossentropy" almindeligvis.
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Træn modellen: Tilpas modellen på træningsdataene. Brug valideringsdata til at overvåge modellens ydeevne og undgå overfitting.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
Trin 4: Implementering af modellen på Google Cloud AI-platformen
Når modellen er trænet, er næste trin at implementere den på Google Cloud AI Platform for skalerbare forudsigelser.
1. Gem modellen: Eksporter den trænede model til et format, der er kompatibelt med Google Cloud, såsom TensorFlow SavedModel.
python model.save('fashion_mnist_model')
2. Upload modellen til Google Cloud Storage: Brug kommandolinjeværktøjet `gsutil` til at uploade modellen til en Google Cloud Storage-bøtte.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. Opret en model på AI-platformen: I Google Cloud Console skal du navigere til AI Platform > Modeller og oprette en ny model. Angiv modelnavn og område.
4. Implementer en modelversion: Opret en ny version af modellen ved at angive Cloud Storage-stien til SavedModel. Konfigurer maskintype og skaleringsindstillinger baseret på dine forudsigelsesbehov.
5. Test implementeringen: Brug AI-platformens forudsigelsestjeneste til at teste den implementerede model. Du kan sende HTTP-anmodninger med billeddata til modellens slutpunkt og modtage forudsigelser.
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)
Trin 5: Modelevaluering og iteration
Efter implementering er det vigtigt at evaluere modellens ydeevne og gentage designet for at forbedre nøjagtigheden og effektiviteten.
1. Overvåg modellens ydeevne: Brug Google Clouds overvågningsværktøjer til at spore modelydeevnemålinger såsom latenstid, gennemløb og forudsigelsesnøjagtighed. Disse data er uvurderlige til at identificere flaskehalse og områder til forbedring.
2. A/B-test: Udfør A/B-test for at sammenligne forskellige modelversioner. Denne tilgang hjælper med at forstå virkningen af ændringer og vælge den bedst ydende model.
3. Kontinuerlig integration og implementering (CI/CD): Implementer CI/CD-praksis for at automatisere implementeringen af nye modelversioner. Denne opsætning sikrer, at forbedringer hurtigt leveres til produktionen.
4. Feedbacksløjfe: Etabler en feedback-loop med slutbrugere for at indsamle indsigt i modelforudsigelser. Brug denne feedback til at finjustere modellen og forbedre dens relevans for applikationer i den virkelige verden.
5. Omskoling med nye data: Opdater regelmæssigt modellen med nye data for at bevare dens nøjagtighed over tid. Denne praksis er særlig vigtig i modeindustrien, hvor trends og stilarter udvikler sig hurtigt.
Fashion-MNIST-datasættet giver en praktisk anvendelse til at implementere billedklassificeringsmodeller på Google Clouds AI-platform. Ved at følge de skitserede trin kan man effektivt udnytte Googles infrastruktur til at bygge, implementere og vedligeholde skalerbare maskinlæringsmodeller. Denne proces forbedrer ikke kun modellens nøjagtighed og ydeevne, men sikrer også dens anvendelighed til virkelige scenarier i modeindustrien.
Google opdaterer ofte sin AI-platform (fra 2024 udviklet sig til Vertex AI-platformen). Hvis du støder på problemer med disse opdateringer, kan du også prøve følgende kode:
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}")
Andre seneste spørgsmål og svar vedr EITC/AI/GCML Google Cloud Machine Learning:
- Hvad er præstationsevalueringsmålingerne for en model?
- Hvad er lineær regression?
- Er det muligt at kombinere forskellige ML-modeller og bygge en master AI?
- Hvad er nogle af de mest almindelige algoritmer, der bruges i maskinlæring?
- Hvordan opretter man en version af modellen?
- Hvordan anvender man de 7 trin i ML i en eksempelsammenhæng?
- Hvordan kan maskinlæring anvendes på byggetilladelsesdata?
- Hvorfor blev AutoML Tables udgået, og hvad efterfølger dem?
- Hvad er opgaven med at fortolke doodles tegnet af spillere i forbindelse med AI?
- Når læsematerialerne taler om "at vælge den rigtige algoritme", betyder det, at stort set alle mulige algoritmer allerede eksisterer? Hvordan ved vi, at en algoritme er den "rigtige" til et specifikt problem?
Se flere spørgsmål og svar i EITC/AI/GCML Google Cloud Machine Learning