Fashion-MNIST er et datasett av Zalandos artikkelbilder, bestående av et treningssett med 60,000 10,000 eksempler og et testsett med 28 28 eksempler. Hvert eksempel er et 10×XNUMX gråtonebilde, assosiert med en etikett fra XNUMX klasser. Datasettet fungerer som en direkte drop-in-erstatning for det originale MNIST-datasettet for benchmarking av maskinlæringsalgoritmer, og gir et mer utfordrende alternativ på grunn av dets kompleksitet og variasjon i moterelaterte bilder.
For å praktisk bruke Fashion-MNIST-datasettet i Google Clouds AI-plattform, må man følge flere strukturerte trinn som omfatter dataforberedelse, modelltrening, distribusjon og evaluering. Hvert av disse stadiene krever en omfattende forståelse av både datasettet og Google Cloud-miljøet.
Trinn 1: Konfigurere Google Cloud Environment
Før du bruker datasettet, sørg for at du har en Google Cloud-konto. Konfigurer et nytt prosjekt i Google Cloud Console. Aktiver fakturering for prosjektet ditt og aktiver Cloud AI Platform API. Dette oppsettet er viktig siden det lar deg utnytte Googles robuste infrastruktur for maskinlæringsoppgaver.
1. Opprett et Google Cloud-prosjekt: Naviger til Google Cloud Console og lag et nytt prosjekt. Gi prosjektet ditt et unikt navn for enkel identifikasjon.
2. Aktiver APIer: Gå til dashbordet for API og tjenester og aktiver Cloud AI Platform API. Denne API-en er viktig for å implementere maskinlæringsmodeller på Google Cloud.
3. Installer Cloud SDK: Last ned og installer Google Cloud SDK på din lokale maskin. Denne SDK-en inneholder kommandolinjeverktøyet «gcloud», som er nødvendig for å samhandle med Google Cloud-ressursene dine.
Trinn 2: Klargjøring av Fashion-MNIST-datasettet
Fashion-MNIST-datasettet kan nås fra forskjellige kilder, inkludert det offisielle GitHub-depotet. Det er viktig å forhåndsbehandle datasettet for å sikre at det er i riktig format for treningsmodeller på Google Cloud.
1. Last ned datasettet: Datasettet er tilgjengelig i flere formater, inkludert CSV- og NumPy-matriser. For TensorFlow-brukere kan den lastes direkte ved hjelp av `tensorflow.keras.datasets`-modulen.
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. Forbehandling av data: Normaliser pikselverdiene til bildene til området [0, 1] ved å dele på 255. Dette trinnet er viktig for å sikre at modellen konvergerer effektivt under trening.
python train_images = train_images/255.0 test_images = test_images/255.0
3. Omform og forsterk data: Avhengig av modellarkitekturen må du kanskje omforme dataene. I tillegg bør du vurdere dataforsterkningsteknikker som rotasjon, zoom og horisontal flip for å forbedre modellens robusthet.
Trinn 3: Modellutvikling
Utvikle en maskinlæringsmodell som passer for Fashion-MNIST-datasettet. Convolutional Neural Networks (CNN) er et populært valg på grunn av deres effektivitet i bildeklassifiseringsoppgaver.
1. Definer modellarkitekturen: Bruk TensorFlow eller PyTorch til å definere en CNN-modell. En typisk arkitektur kan inkludere flere konvolusjonslag etterfulgt av maks-pooling-lag, og et fullt koblet tett 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: Velg en passende optimizer, tapsfunksjon og beregninger. For multi-class klassifisering, er "sparse_categorical_crossentropy" ofte brukt.
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Tren modellen: Tilpass modellen på treningsdataene. Bruk valideringsdata for å overvåke modellens ytelse og unngå overmontering.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
Trinn 4: Implementering av modellen på Google Cloud AI-plattformen
Når modellen er opplært, er neste trinn å distribuere den på Google Cloud AI Platform for skalerbare spådommer.
1. Lagre modellen: Eksporter den opplærte modellen til et format som er kompatibelt med Google Cloud, for eksempel TensorFlow SavedModel.
python model.save('fashion_mnist_model')
2. Last opp modellen til Google Cloud Storage: Bruk kommandolinjeverktøyet `gsutil` for å laste opp modellen til en Google Cloud Storage-bøtte.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. Lag en modell på AI-plattformen: I Google Cloud Console, naviger til AI Platform > Modeller og lag en ny modell. Angi modellnavn og region.
4. Distribuer en modellversjon: Opprett en ny versjon av modellen ved å spesifisere Cloud Storage-banen til SavedModel. Konfigurer maskintype og skaleringsalternativer basert på dine prediksjonsbehov.
5. Test utrullingen: Bruk AI-plattformens prediksjonstjeneste for å teste den utplasserte modellen. Du kan sende HTTP-forespørsler med bildedata til modellens endepunkt og motta spådommer.
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)
Trinn 5: Modellevaluering og iterasjon
Etter utplassering er det viktig å evaluere modellens ytelse og gjenta designet for å forbedre nøyaktigheten og effektiviteten.
1. Overvåk modellytelse: Bruk Google Clouds overvåkingsverktøy for å spore modellytelsesmålinger som ventetid, gjennomstrømning og prediksjonsnøyaktighet. Disse dataene er uvurderlige for å identifisere flaskehalser og forbedringsområder.
2. A/B-testing: Gjennomfør A/B-testing for å sammenligne ulike modellversjoner. Denne tilnærmingen hjelper til med å forstå virkningen av endringer og velge den modellen som gir best resultater.
3. Kontinuerlig integrasjon og distribusjon (CI/CD): Implementer CI/CD-praksis for å automatisere distribusjonen av nye modellversjoner. Dette oppsettet sikrer at forbedringer raskt leveres til produksjonen.
4. Feedback loop: Etabler en tilbakemeldingssløyfe med sluttbrukere for å samle innsikt om modellforutsigelser. Bruk denne tilbakemeldingen til å finjustere modellen og forbedre dens relevans for virkelige applikasjoner.
5. Omskolering med nye data: Oppdater modellen regelmessig med nye data for å opprettholde nøyaktigheten over tid. Denne praksisen er spesielt viktig i moteindustrien, der trender og stiler utvikler seg raskt.
Fashion-MNIST-datasettet gir et praktisk bruksområde for å distribuere bildeklassifiseringsmodeller på Google Clouds AI-plattform. Ved å følge de skisserte trinnene kan man effektivt utnytte Googles infrastruktur for å bygge, distribuere og vedlikeholde skalerbare maskinlæringsmodeller. Denne prosessen forbedrer ikke bare modellens nøyaktighet og ytelse, men sikrer også at den kan brukes i virkelige scenarier i moteindustrien.
Google oppdaterer ofte sin AI-plattform (fra og med 2024 utviklet seg til Vertex AI-plattformen). Hvis du støter på problemer med disse oppdateringene, 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 nyere spørsmål og svar vedr EITC/AI/GCML Google Cloud Machine Learning:
- Du nevnte mange slags algoritmer som lineær regresjon, beslutningstrær. Er dette alle nevronale nettverk?
- Hva er ytelsesevalueringsberegningene til en modell?
- Hva er lineær regresjon?
- Er det mulig å kombinere forskjellige ML-modeller og bygge en master AI?
- Hva er noen av de vanligste algoritmene som brukes i maskinlæring?
- Hvordan lage en versjon av modellen?
- Hvordan bruke de 7 trinnene i ML i en eksempelsammenheng?
- Hvordan kan maskinlæring brukes på bygningstillatelsesdata?
- Hvorfor ble AutoML Tables avviklet, og hva følger etter dem?
- Hva er oppgaven med å tolke doodler tegnet av spillere i sammenheng med AI?
Se flere spørsmål og svar i EITC/AI/GCML Google Cloud Machine Learning