Fashion-MNIST je dátový súbor obrázkov článkov Zalando, ktorý pozostáva z tréningovej sady 60,000 10,000 príkladov a testovacej sady 28 28 príkladov. Každý príklad je obrázok v odtieňoch sivej s rozmermi 10 × XNUMX, ktorý je spojený so štítkom z XNUMX tried. Súbor údajov slúži ako priama náhrada pôvodného súboru údajov MNIST na porovnávanie algoritmov strojového učenia, čo poskytuje náročnejšiu alternatívu vďaka svojej zložitosti a variabilite obrázkov súvisiacich s módou.
Ak chcete prakticky použiť súbor údajov Fashion-MNIST v platforme AI Google Cloud, musíte postupovať podľa niekoľkých štruktúrovaných krokov, ktoré zahŕňajú prípravu údajov, školenie modelov, nasadenie a vyhodnotenie. Každá z týchto fáz si vyžaduje komplexné pochopenie množiny údajov aj prostredia Google Cloud.
Krok 1: Nastavenie prostredia Google Cloud
Pred použitím množiny údajov sa uistite, že máte účet Google Cloud. Nastavte nový projekt v konzole Google Cloud Console. Povoľte fakturáciu pre svoj projekt a aktivujte rozhranie Cloud AI Platform API. Toto nastavenie je dôležité, pretože vám umožňuje využiť robustnú infraštruktúru Google na úlohy strojového učenia.
1. Vytvorte projekt Google Cloud: Prejdite do služby Google Cloud Console a vytvorte nový projekt. Priraďte svojmu projektu jedinečný názov pre jednoduchú identifikáciu.
2. Povoliť API: Prejdite na panel API & služby a povoľte rozhranie Cloud AI Platform API. Toto rozhranie API je nevyhnutné na nasadenie modelov strojového učenia v službe Google Cloud.
3. Nainštalujte Cloud SDK: Stiahnite si a nainštalujte Google Cloud SDK do svojho lokálneho počítača. Táto súprava SDK poskytuje nástroj príkazového riadka „gcloud“, ktorý je potrebný na interakciu s vašimi prostriedkami Google Cloud.
Krok 2: Príprava súboru údajov Fashion-MNIST
K súboru údajov Fashion-MNIST je možné pristupovať z rôznych zdrojov vrátane oficiálneho úložiska GitHub. Je nevyhnutné vopred spracovať množinu údajov, aby ste sa uistili, že je v správnom formáte pre tréningové modely v službe Google Cloud.
1. Stiahnite si množinu údajov: Súbor údajov je dostupný vo viacerých formátoch vrátane polí CSV a NumPy. Pre používateľov TensorFlow ho možno priamo načítať pomocou modulu `tensorflow.keras.datasets`.
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. Spracovanie dát: Normalizujte hodnoty pixelov obrázkov na rozsah [0, 1] vydelením číslom 255. Tento krok je dôležitý na zabezpečenie efektívnej konvergencie modelu počas tréningu.
python train_images = train_images/255.0 test_images = test_images/255.0
3. Reshape a Augment Data: V závislosti od architektúry modelu možno budete musieť zmeniť tvar údajov. Okrem toho zvážte techniky zväčšenia údajov, ako je rotácia, priblíženie a horizontálne prevrátenie, aby ste zvýšili robustnosť modelu.
Krok 3: Vývoj modelu
Vytvorte model strojového učenia vhodný pre množinu údajov Fashion-MNIST. Konvolučné neurónové siete (CNN) sú populárnou voľbou kvôli ich účinnosti v úlohách klasifikácie obrázkov.
1. Definujte architektúru modelu: Na definovanie modelu CNN použite TensorFlow alebo PyTorch. Typická architektúra môže zahŕňať viacero konvolučných vrstiev, po ktorých nasledujú maximálne združovacie vrstvy a plne prepojenú hustú vrstvu.
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. Zostavte model: Vyberte vhodný optimalizátor, stratovú funkciu a metriky. Na klasifikáciu viacerých tried sa bežne používa `sparse_categorical_crossentropy`.
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Trénujte modelku: Prispôsobte model tréningovým dátam. Použite overovacie údaje na monitorovanie výkonu modelu a vyhýbajte sa nadmernému namontovaniu.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
Krok 4: Nasadenie modelu na platforme Google Cloud AI
Keď je model vyškolený, ďalším krokom je jeho nasadenie na platforme Google Cloud AI na škálovateľné predpovede.
1. Uložte model: Exportujte natrénovaný model do formátu kompatibilného so službou Google Cloud, ako je napríklad TensorFlow SavedModel.
python model.save('fashion_mnist_model')
2. Nahrajte model do úložiska Google Cloud Storage: Pomocou nástroja príkazového riadka `gsutil` nahrajte model do úložiska Google Cloud Storage.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. Vytvorte model na platforme AI: V konzole Google Cloud Console prejdite do časti Platforma AI > Modely a vytvorte nový model. Zadajte názov modelu a región.
4. Nasaďte verziu modelu: Vytvorte novú verziu modelu zadaním cesty Cloud Storage k SavedModel. Nakonfigurujte typ počítača a možnosti škálovania na základe vašich predikčných potrieb.
5. Otestujte nasadenie: Použite službu predpovedí platformy AI na testovanie nasadeného modelu. Môžete odosielať požiadavky HTTP s obrazovými údajmi do koncového bodu modelu a prijímať predpovede.
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)
Krok 5: Vyhodnotenie a iterácia modelu
Po nasadení je dôležité vyhodnotiť výkon modelu a opakovať návrh, aby sa zlepšila presnosť a efektívnosť.
1. Monitorujte výkon modelu: Pomocou monitorovacích nástrojov Google Cloud môžete sledovať metriky výkonnosti modelu, ako je latencia, priepustnosť a presnosť predpovedí. Tieto údaje sú neoceniteľné pri identifikácii úzkych miest a oblastí na zlepšenie.
2. Testovanie A/B: Vykonajte testovanie A/B na porovnanie rôznych verzií modelu. Tento prístup pomáha pochopiť vplyv zmien a vybrať model s najlepším výkonom.
3. Nepretržitá integrácia a nasadenie (CI/CD): Implementujte postupy CI/CD na automatizáciu nasadenia nových verzií modelu. Toto nastavenie zaisťuje rýchle doručenie vylepšení do výroby.
4. Slučka spätnej väzby: Vytvorte spätnú väzbu s koncovými používateľmi, aby ste získali prehľad o predpovediach modelov. Použite túto spätnú väzbu na doladenie modelu a zvýšenie jeho relevantnosti pre aplikácie v reálnom svete.
5. Preškolenie s novými údajmi: Pravidelne aktualizujte model o nové údaje, aby sa zachovala jeho presnosť v priebehu času. Táto prax je obzvlášť dôležitá v módnom priemysle, kde sa trendy a štýly rýchlo vyvíjajú.
Súbor údajov Fashion-MNIST poskytuje praktický prípad použitia na nasadenie modelov klasifikácie obrázkov na platforme umelej inteligencie Google Cloud. Dodržiavaním načrtnutých krokov je možné efektívne využiť infraštruktúru Google na vytváranie, nasadzovanie a údržbu škálovateľných modelov strojového učenia. Tento proces nielen zvyšuje presnosť a výkon modelu, ale zabezpečuje aj jeho použiteľnosť v reálnych scenároch v módnom priemysle.
Google často aktualizuje svoju platformu AI (od roku 2024 sa vyvinula na platformu AI Vertex). Ak narazíte na nejaké problémy s týmito aktualizáciami, môžete tiež vyskúšať nasledujúci kód:
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}")
Ďalšie nedávne otázky a odpovede týkajúce sa EITC/AI/GCML Google Cloud Machine Learning:
- Spomenuli ste veľa druhov algoritmov, ako je lineárna regresia, rozhodovacie stromy. Sú to všetky neurónové siete?
- Aké sú metriky hodnotenia výkonnosti modelu?
- Čo je lineárna regresia?
- Je možné kombinovať rôzne modely ML a zostaviť majstrovskú AI?
- Aké sú niektoré z najbežnejších algoritmov používaných v strojovom učení?
- Ako vytvoriť verziu modelu?
- Ako aplikovať 7 krokov ML v príkladnom kontexte?
- Ako možno strojové učenie aplikovať na údaje o stavebných povoleniach?
- Prečo boli tabuľky AutoML prerušené a čo ich nasleduje?
- Aká je úloha interpretácie sviatočných log nakreslených hráčmi v kontexte AI?
Ďalšie otázky a odpovede nájdete v EITC/AI/GCML Google Cloud Machine Learning