Fashion-MNIST on Zalandon artikkelikuvien tietojoukko, joka koostuu 60,000 10,000 esimerkin koulutussarjasta ja 28 28 esimerkin testijoukosta. Jokainen esimerkki on 10 × XNUMX harmaasävykuva, joka liittyy XNUMX luokan tunnisteeseen. Tietojoukko toimii suorana korvaavana alkuperäiselle MNIST-tietojoukolle koneoppimisalgoritmien vertailua varten. Se tarjoaa haastavamman vaihtoehdon sen monimutkaisuuden ja muotiin liittyvien kuvien vaihtelevuuden vuoksi.
Käytännössä Fashion-MNIST-tietojoukon käyttäminen Google Cloudin AI-alustassa edellyttää useita jäsenneltyjä vaiheita, jotka sisältävät tietojen valmistelun, mallin koulutuksen, käyttöönoton ja arvioinnin. Jokainen näistä vaiheista edellyttää kattavaa ymmärrystä sekä tietojoukosta että Google Cloud -ympäristöstä.
Vaihe 1: Google Cloud Environmentin määrittäminen
Ennen kuin käytät tietojoukkoa, varmista, että sinulla on Google Cloud -tili. Määritä uusi projekti Google Cloud Consolessa. Ota projektisi laskutus käyttöön ja aktivoi Cloud AI Platform API. Tämä asetus on tärkeä, koska sen avulla voit hyödyntää Googlen vankkaa infrastruktuuria koneoppimistehtävissä.
1. Luo Google Cloud Project: Siirry Google Cloud Consoleen ja luo uusi projekti. Anna projektillesi yksilöllinen nimi helpottaaksesi tunnistamista.
2. Ota sovellusliittymät käyttöön: Siirry API & Services -hallintapaneeliin ja ota Cloud AI Platform API käyttöön. Tämä API on välttämätön koneoppimismallien käyttöönotolle Google Cloudissa.
3. Asenna Cloud SDK: Lataa ja asenna Google Cloud SDK paikalliselle koneellesi. Tämä SDK tarjoaa gcloud-komentorivityökalun, joka on välttämätön vuorovaikutuksessa Google Cloud -resurssien kanssa.
Vaihe 2: Fashion-MNIST-tietojoukon valmistelu
Fashion-MNIST-tietojoukkoa voidaan käyttää useista lähteistä, mukaan lukien virallisesta GitHub-arkistosta. On tärkeää esikäsitellä tietojoukko sen varmistamiseksi, että se on oikeassa muodossa Google Cloudin harjoitusmalleille.
1. Lataa tietojoukko: Tietojoukko on saatavilla useissa muodoissa, mukaan lukien CSV- ja NumPy-taulukot. TensorFlow-käyttäjät voivat ladata sen suoraan tensorflow.keras.datasets-moduulin avulla.
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. Tietojen esikäsittely: Normalisoi kuvien pikseliarvot alueelle [0, 1] jakamalla 255:llä. Tämä vaihe on tärkeä sen varmistamiseksi, että malli konvergoi tehokkaasti harjoituksen aikana.
python train_images = train_images/255.0 test_images = test_images/255.0
3. Muokkaa ja lisää tietoja: Mallin arkkitehtuurista riippuen saatat joutua muotoilemaan tiedot uudelleen. Harkitse lisäksi tietojen lisäystekniikoita, kuten kiertoa, zoomausta ja vaakasuuntaista kääntöä mallin kestävyyden parantamiseksi.
Vaihe 3: Mallin kehittäminen
Kehitä Fashion-MNIST-tietojoukolle sopiva koneoppimismalli. Konvoluutiohermoverkot (CNN) ovat suosittu valinta, koska ne ovat tehokkaita kuvien luokittelutehtävissä.
1. Määritä malliarkkitehtuuri: Käytä TensorFlow- tai PyTorchia CNN-mallin määrittämiseen. Tyypillinen arkkitehtuuri voi sisältää useita konvoluutiokerroksia, joita seuraa max-pooling-kerrokset ja täysin yhdistetty tiheä kerros.
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. Kokoa malli: Valitse sopiva optimoija, häviöfunktio ja mittarit. Moniluokkaisessa luokittelussa käytetään yleisesti parametria "sparse_categorical_crossentropy".
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Harjoittele mallia: Sovita malli harjoitustietoihin. Käytä validointitietoja mallin suorituskyvyn seuraamiseen ja ylisovituksen välttämiseen.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
Vaihe 4: Mallin käyttöönotto Google Cloud AI -alustalla
Kun malli on koulutettu, seuraava vaihe on ottaa se käyttöön Google Cloud AI Platformissa skaalautuvien ennusteiden saamiseksi.
1. Tallenna malli: Vie koulutettu malli Google Cloudin kanssa yhteensopivaan muotoon, kuten TensorFlow SavedModel.
python model.save('fashion_mnist_model')
2. Lataa malli Google Cloud Storageen: Käytä "gsutil"-komentorivityökalua mallin lataamiseen Google Cloud Storage -säilöön.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. Luo malli AI-alustalle: Siirry Google Cloud Consolessa kohtaan AI Platform > Mallit ja luo uusi malli. Määritä mallin nimi ja alue.
4. Ota malliversio käyttöön: Luo mallista uusi versio määrittämällä SavedModelin pilvitallennuspolku. Määritä koneen tyyppi ja skaalausasetukset ennustetarpeidesi mukaan.
5. Testaa käyttöönottoa: Käytä AI Platformin ennustuspalvelua testataksesi käyttöön otettua mallia. Voit lähettää HTTP-pyyntöjä kuvadatan kanssa mallin päätepisteeseen ja vastaanottaa ennusteita.
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)
Vaihe 5: Mallin arviointi ja iterointi
Käyttöönoton jälkeen on tärkeää arvioida mallin suorituskykyä ja toistaa suunnittelua tarkkuuden ja tehokkuuden parantamiseksi.
1. Seuraa mallin suorituskykyä: Käytä Google Cloudin seurantatyökaluja mallin suorituskykymittareiden, kuten viiveen, suorituskyvyn ja ennustetarkkuuden, seurantaan. Nämä tiedot ovat korvaamattomia pullonkaulojen ja parannuskohteiden tunnistamisessa.
2. / B-testaus: Suorita A/B-testaus vertaillaksesi eri malliversioita. Tämä lähestymistapa auttaa ymmärtämään muutosten vaikutuksia ja valitsemaan parhaiten toimivan mallin.
3. Jatkuva integrointi ja käyttöönotto (CI/CD): Ota käyttöön CI/CD-käytäntöjä uusien malliversioiden käyttöönoton automatisoimiseksi. Tämä asetus varmistaa, että parannukset toimitetaan nopeasti tuotantoon.
4. Palautesilmukka: Luo palautesilmukka loppukäyttäjien kanssa kerätäksesi näkemyksiä malliennusteista. Käytä tätä palautetta mallin hienosäätämiseen ja sen merkityksen parantamiseen todellisten sovellusten kannalta.
5. Uudelleenkoulutus uusilla tiedoilla: Päivitä malli säännöllisesti uusilla tiedoilla säilyttääksesi sen tarkkuuden ajan kuluessa. Tämä käytäntö on erityisen tärkeä muotiteollisuudessa, jossa trendit ja tyylit kehittyvät nopeasti.
Fashion-MNIST-tietojoukko tarjoaa käytännöllisen käyttötavan kuvien luokittelumallien käyttöönotolle Google Cloudin tekoälyalustalla. Noudattamalla kuvattuja vaiheita voit hyödyntää tehokkaasti Googlen infrastruktuuria skaalautuvien koneoppimismallien rakentamiseen, käyttöönottoon ja ylläpitoon. Tämä prosessi ei ainoastaan paranna mallin tarkkuutta ja suorituskykyä, vaan myös varmistaa sen soveltuvuuden muotiteollisuuden todellisiin skenaarioihin.
Google päivittää usein tekoälyalustaan (vuodesta 2024 lähtien se kehittyi Vertex AI Platformiksi). Jos kohtaat ongelmia näiden päivitysten kanssa, voit myös kokeilla seuraavaa koodia:
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}")
Muita viimeaikaisia kysymyksiä ja vastauksia liittyen EITC/AI/GCML Google Cloud Machine Learning:
- Miten päätät, mitä koneoppimisalgoritmia käytät ja miten löydät sen?
- Mitä eroa on Federated learning ja Edge Computing & On-Device Machine Learning välillä?
- Kuinka valmistella ja puhdistaa tiedot ennen harjoittelua?
- Tarkoitin toimintoja, kuten luokittelua, tunnistamista jne. Haluaisin luettelon kaikista mahdollisista toiminnoista ja selityksen siitä, mitä kullakin tarkoitetaan.
- Mitä toimintoja ML:llä voi tehdä ja miten niitä voidaan käyttää?
- Mitkä ovat nyrkkisäännöt tietyn strategian hyväksymiselle? Voitko ilmoittaa erityiset parametrit, jotka saavat minut ymmärtämään, kannattaako käyttää monimutkaisempaa mallia?
- Millä parametrilla ymmärrän, onko aika siirtyä lineaarisesta mallista syvään oppimiseen?
- Mikä Python-versio olisi paras TensorFlow'n asentamiseen, jotta vältetään ongelmat, kun TF-jakeluja ei ole saatavilla?
- Mikä on syvä neuroverkko?
- Kuinka kauan koneoppimisen perusteiden oppiminen yleensä kestää?
Katso lisää kysymyksiä ja vastauksia EITC/AI/GCML Google Cloud Machine Learningissä