A Fashion-MNIST a Zalando cikkképeinek adatkészlete, amely egy 60,000 10,000 példát tartalmazó képzési készletből és egy 28 28 példát tartalmazó tesztkészletből áll. Mindegyik példa egy 10×XNUMX-as szürkeárnyalatos kép, amely XNUMX osztály címkéjéhez van társítva. Az adatkészlet az eredeti MNIST-adatkészlet közvetlen helyettesítőjeként szolgál a gépi tanulási algoritmusok teljesítményértékeléséhez, és nagyobb kihívást jelent a divattal kapcsolatos képek összetettsége és változatossága miatt.
A Fashion-MNIST adatkészlet gyakorlati használatához a Google Cloud AI-platformjában több strukturált lépést kell követni, amelyek magukban foglalják az adatok előkészítését, a modell betanítását, a telepítést és az értékelést. Ezen szakaszok mindegyike megköveteli mind az adatkészlet, mind a Google Cloud környezet átfogó megértését.
1. lépés: A Google Cloud Environment beállítása
Az adatkészlet használata előtt győződjön meg arról, hogy rendelkezik Google Cloud-fiókkal. Állítson be új projektet a Google Cloud Console-ban. Engedélyezze projektje számlázását, és aktiválja a Cloud AI Platform API-t. Ez a beállítás fontos, mivel lehetővé teszi a Google robusztus infrastruktúrájának kihasználását a gépi tanulási feladatokhoz.
1. Hozzon létre egy Google Cloud Projectet: Navigáljon a Google Cloud Console-hoz, és hozzon létre egy új projektet. Rendeljen egyedi nevet a projekthez az egyszerű azonosítás érdekében.
2. API-k engedélyezése: Lépjen az API és szolgáltatások irányítópultjára, és engedélyezze a Cloud AI Platform API-t. Ez az API nélkülözhetetlen a gépi tanulási modellek Google Cloud-on való üzembe helyezéséhez.
3. Telepítse a Cloud SDK-t: Töltse le és telepítse a Google Cloud SDK-t a helyi számítógépére. Ez az SDK biztosítja a „gcloud” parancssori eszközt, amely szükséges a Google Cloud-erőforrásokkal való interakcióhoz.
2. lépés: A Fashion-MNIST adatkészlet előkészítése
A Fashion-MNIST adatkészlet különféle forrásokból érhető el, beleértve a hivatalos GitHub-tárat is. Alapvető fontosságú az adatkészlet előfeldolgozása annak biztosítása érdekében, hogy a megfelelő formátumban legyen a Google Cloud képzési modelljeihez.
1. Töltse le az adatkészletet: Az adatkészlet többféle formátumban is elérhető, beleértve a CSV és NumPy tömböket. A TensorFlow felhasználók számára közvetlenül betölthető a "tensorflow.keras.datasets" modul segítségével.
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. Adat előfeldolgozása: Normalizálja a képek pixelértékeit a [0, 1] tartományra úgy, hogy elosztja 255-tel. Ez a lépés fontos annak biztosításához, hogy a modell hatékonyan konvergáljon a képzés során.
python train_images = train_images/255.0 test_images = test_images/255.0
3. Adatok átformálása és bővítése: A modell architektúrától függően előfordulhat, hogy át kell alakítani az adatokat. Ezenkívül fontolja meg az adatkiegészítési technikákat, például az elforgatást, a nagyítást és a vízszintes átfordítást a modell robusztusságának növelése érdekében.
3. lépés: Modellfejlesztés
A Fashion-MNIST adatkészlethez megfelelő gépi tanulási modell fejlesztése. A konvolúciós neurális hálózatok (CNN-ek) népszerű választás, mivel hatékonyak a képosztályozási feladatokban.
1. Határozza meg a modellarchitektúrát: A TensorFlow vagy a PyTorch segítségével határozzon meg egy CNN-modellt. Egy tipikus architektúra tartalmazhat több konvolúciós réteget, amelyet max-pooling réteg követ, és egy teljesen összekapcsolt sűrű réteg.
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. Állítsa össze a modellt: Válasszon megfelelő optimalizálót, veszteségfüggvényt és mérőszámokat. A többosztályos osztályozáshoz általában a `sparse_categorical_crossentropy` használatos.
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Tanítsd meg a modellt: Illessze a modellt az edzési adatokra. Használjon érvényesítési adatokat a modell teljesítményének nyomon követésére és a túlillesztés elkerülésére.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
4. lépés: A modell üzembe helyezése a Google Cloud AI platformon
A modell betanítása után a következő lépés az, hogy telepítse a Google Cloud AI Platformon a méretezhető előrejelzések érdekében.
1. Mentse el a modellt: Exportálja a betanított modellt a Google Clouddal kompatibilis formátumba, például a TensorFlow SavedModel.
python model.save('fashion_mnist_model')
2. Töltse fel a modellt a Google Cloud Storage szolgáltatásba: A „gsutil” parancssori eszközzel töltse fel a modellt a Google Cloud Storage tárolójába.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. Hozzon létre egy modellt az AI platformon: A Google Cloud Console-ban lépjen az AI Platform > Models menüpontra, és hozzon létre egy új modellt. Adja meg a modell nevét és régióját.
4. Telepítsen egy modellverziót: A modell új verziójának létrehozása a SavedModel felhőalapú tárolási útvonalának megadásával. Konfigurálja a gép típusát és a méretezési beállításokat az előrejelzési igényei alapján.
5. Tesztelje a telepítést: Használja az AI Platform előrejelzési szolgáltatását a telepített modell teszteléséhez. Képadatokat tartalmazó HTTP-kéréseket küldhet a modell végpontjára, és előrejelzéseket fogadhat.
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)
5. lépés: Modell értékelése és iterációja
Az üzembe helyezés után fontos értékelni a modell teljesítményét, és megismételni a tervezést a pontosság és hatékonyság javítása érdekében.
1. Monitor Model Performance: A Google Cloud megfigyelő eszközeivel nyomon követheti a modell teljesítménymutatóit, például a késleltetést, az átviteli sebességet és az előrejelzési pontosságot. Ezek az adatok felbecsülhetetlen értékűek a szűk keresztmetszetek és a fejlesztendő területek azonosításához.
2. A/B tesztelés: Végezzen A/B tesztelést a különböző modellváltozatok összehasonlításához. Ez a megközelítés segít a változások hatásának megértésében és a legjobban teljesítő modell kiválasztásában.
3. Folyamatos integráció és telepítés (CI/CD): CI/CD gyakorlatok megvalósítása az új modellverziók telepítésének automatizálása érdekében. Ez a beállítás biztosítja, hogy a fejlesztések gyorsan a termelésbe kerüljenek.
4. Visszacsatolás: Visszacsatolási hurkot hozzon létre a végfelhasználókkal, hogy betekintést nyerhessen a modell előrejelzéseibe. Használja ezt a visszajelzést a modell finomhangolására és relevanciájának növelésére a valós alkalmazásokban.
5. Átképzés új adatokkal: Rendszeresen frissítse a modellt új adatokkal, hogy idővel megőrizze pontosságát. Ez a gyakorlat különösen fontos a divatiparban, ahol a trendek és stílusok gyorsan fejlődnek.
A Fashion-MNIST adatkészlet praktikus felhasználási példát nyújt a képbesorolási modellek telepítéséhez a Google Cloud AI platformján. A vázolt lépések követésével hatékonyan kihasználhatja a Google infrastruktúráját a méretezhető gépi tanulási modellek felépítéséhez, telepítéséhez és karbantartásához. Ez az eljárás nemcsak a modell pontosságát és teljesítményét javítja, hanem biztosítja a divatipar valós világában való alkalmazhatóságát is.
A Google gyakran frissíti mesterséges intelligencia platformját (2024-től Vertex AI Platformmá fejlődött). Ha problémákat tapasztal ezekkel a frissítésekkel, próbálkozzon a következő kóddal is:
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}")
További friss kérdések és válaszok ezzel kapcsolatban EITC/AI/GCML Google Cloud Machine Learning:
- A Whawt a gépi tanulás programozási nyelve, csak Python
- Hogyan alkalmazzák a gépi tanulást a tudományos világban?
- Hogyan dönti el, hogy melyik gépi tanulási algoritmust használja, és hogyan találja meg?
- Mi a különbség a Federated Learning, az Edge Computing és az On-Device Machine Learning között?
- Hogyan készítsük elő és tisztítsuk meg az adatokat edzés előtt?
- Melyek a konkrét kezdeti feladatok és tevékenységek egy gépi tanulási projektben?
- Milyen hüvelykujjszabályok vonatkoznak egy adott gépi tanulási stratégia és modell elfogadására?
- Mely paraméterek jelzik, hogy ideje áttérni a lineáris modellről a mély tanulásra?
- A Python melyik verziója lenne a legjobb a TensorFlow telepítéséhez, hogy elkerülhető legyen a TF disztribúció hiánya?
- Mi az a mély neurális hálózat?
További kérdések és válaszok az EITC/AI/GCML Google Cloud Machine Learningben