Fashion-MNIST je datová sada obrázků článků Zalando, která se skládá z tréninkové sady 60,000 10,000 příkladů a testovací sady 28 28 příkladů. Každý příklad je obrázek ve stupních šedi 10×XNUMX spojený se štítkem z XNUMX tříd. Datový soubor slouží jako přímá náhrada původního datového souboru MNIST pro srovnávání algoritmů strojového učení a poskytuje náročnější alternativu díky své složitosti a variabilitě obrázků souvisejících s módou.
Chcete-li prakticky použít datovou sadu Fashion-MNIST v platformě AI společnosti Google Cloud, musíte provést několik strukturovaných kroků, které zahrnují přípravu dat, školení modelu, nasazení a vyhodnocení. Každá z těchto fází vyžaduje komplexní pochopení jak datové sady, tak prostředí Google Cloud.
Krok 1: Nastavení prostředí Google Cloud
Před použitím datové sady se ujistěte, že máte účet Google Cloud. Nastavte nový projekt v Google Cloud Console. Povolte fakturaci svého projektu a aktivujte rozhraní Cloud AI Platform API. Toto nastavení je důležité, protože vám umožňuje využít robustní infrastrukturu Google pro úlohy strojového učení.
1. Vytvořte projekt Google Cloud: Přejděte do Google Cloud Console a vytvořte nový projekt. Přiřaďte svému projektu jedinečný název pro snadnou identifikaci.
2. Povolit rozhraní API: Přejděte na řídicí panel API & služby a povolte rozhraní Cloud AI Platform API. Toto rozhraní API je nezbytné pro nasazení modelů strojového učení ve službě Google Cloud.
3. Nainstalujte Cloud SDK: Stáhněte a nainstalujte Google Cloud SDK do místního počítače. Tato sada SDK poskytuje nástroj příkazového řádku „gcloud“, který je nezbytný pro interakci s vašimi prostředky Google Cloud.
Krok 2: Příprava datové sady Fashion-MNIST
K datové sadě Fashion-MNIST lze přistupovat z různých zdrojů, včetně oficiálního úložiště GitHub. Je nezbytné předzpracovat datovou sadu, aby bylo zajištěno, že je ve správném formátu pro tréninkové modely ve službě Google Cloud.
1. Stáhněte si datovou sadu: Datová sada je k dispozici v několika formátech, včetně CSV a polí NumPy. Pro uživatele TensorFlow jej lze přímo načíst pomocí 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. Předběžné zpracování dat: Normalizujte hodnoty pixelů obrázků na rozsah [0, 1] vydělením 255. Tento krok je důležitý pro zajištění efektivní konvergace modelu během tréninku.
python train_images = train_images/255.0 test_images = test_images/255.0
3. Změna tvaru a rozšíření dat: V závislosti na architektuře modelu může být nutné změnit tvar dat. Kromě toho zvažte techniky rozšíření dat, jako je rotace, zoom a horizontální převrácení, abyste zvýšili robustnost modelu.
Krok 3: Vývoj modelu
Vytvořte model strojového učení vhodný pro datovou sadu Fashion-MNIST. Konvoluční neuronové sítě (CNN) jsou oblíbenou volbou kvůli jejich účinnosti v úkolech klasifikace obrázků.
1. Definujte architekturu modelu: Pomocí TensorFlow nebo PyTorch definujte model CNN. Typická architektura může zahrnovat více konvolučních vrstev následovaných maximálními sdružovacími vrstvami a plně spojenou hustou vrstvou.
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. Zkompilujte model: Vyberte vhodný optimalizátor, ztrátovou funkci a metriky. Pro klasifikaci do více tříd se běžně používá `sparse_categorical_crossentropy`.
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Trénujte modelku: Přizpůsobte model tréninkovým datům. Použijte ověřovací data ke sledování výkonu modelu a vyhněte se nadměrnému vybavení.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
Krok 4: Nasazení modelu na platformě Google Cloud AI
Jakmile je model trénován, dalším krokem je jeho nasazení na platformě Google Cloud AI pro škálovatelné předpovědi.
1. Uložte model: Exportujte trénovaný model do formátu kompatibilního s Google Cloud, jako je TensorFlow SavedModel.
python model.save('fashion_mnist_model')
2. Nahrajte model do úložiště Google Cloud Storage: Pomocí nástroje příkazového řádku `gsutil` nahrajte model do úložiště Google Cloud Storage.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. Vytvořte model na platformě AI: V Google Cloud Console přejděte na AI Platform > Modely a vytvořte nový model. Zadejte název modelu a oblast.
4. Nasadit verzi modelu: Vytvořte novou verzi modelu zadáním cesty Cloud Storage k SavedModel. Nakonfigurujte typ stroje a možnosti škálování na základě vašich předpovědních potřeb.
5. Otestujte nasazení: Použijte službu predikcí platformy AI k testování nasazeného modelu. Do koncového bodu modelu můžete odesílat požadavky HTTP s obrazovými daty a přijímat předpovědi.
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: Vyhodnocení a iterace modelu
Po nasazení je důležité vyhodnotit výkon modelu a iterovat návrh, aby se zlepšila přesnost a efektivita.
1. Monitorujte výkon modelu: Pomocí monitorovacích nástrojů Google Cloud můžete sledovat metriky výkonu modelu, jako je latence, propustnost a přesnost předpovědí. Tato data jsou neocenitelná pro identifikaci úzkých míst a oblastí pro zlepšení.
2. A/B testování : Proveďte A/B testování pro porovnání různých verzí modelu. Tento přístup pomáhá pochopit dopad změn a vybrat nejvýkonnější model.
3. Průběžná integrace a nasazení (CI/CD): Implementujte postupy CI/CD k automatizaci nasazení nových verzí modelů. Toto nastavení zajišťuje rychlé dodání vylepšení do výroby.
4. Zpětná vazba: Vytvořte zpětnou vazbu s koncovými uživateli, abyste získali přehled o předpovědích modelu. Použijte tuto zpětnou vazbu k doladění modelu a zvýšení jeho relevance pro aplikace v reálném světě.
5. Rekvalifikace s novými daty: Pravidelně aktualizujte model novými daty, aby byla zachována jeho přesnost v průběhu času. Tato praxe je zvláště důležitá v módním průmyslu, kde se trendy a styly rychle vyvíjejí.
Datový soubor Fashion-MNIST poskytuje praktický příklad použití pro nasazení modelů klasifikace obrázků na platformě AI platformy Google Cloud. Dodržením nastíněných kroků lze efektivně využít infrastrukturu Google k vytváření, nasazení a údržbě škálovatelných modelů strojového učení. Tento proces nejen zvyšuje přesnost a výkon modelu, ale také zajišťuje jeho použitelnost v reálných situacích v módním průmyslu.
Google často aktualizuje svou platformu AI (od roku 2024 se vyvinula na platformu Vertex AI). Pokud narazíte na nějaké problémy s těmito aktualizacemi, můžete také zkusit následující 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}")
Další nedávné otázky a odpovědi týkající se EITC/AI/GCML Google Cloud Machine Learning:
- Když se v materiálech ke čtení mluví o „výběru správného algoritmu“, znamená to, že v podstatě všechny možné algoritmy již existují? Jak víme, že algoritmus je „správný“ pro konkrétní problém?
- Jaké jsou hyperparametry používané ve strojovém učení?
- Jaký je programovací jazyk pro strojové učení, je to Just Python
- Jak se strojové učení aplikuje ve světě vědy?
- Jak se rozhodujete, který algoritmus strojového učení použít a jak jej najdete?
- Jaké jsou rozdíly mezi Federated Learning, Edge Computing a On-Device Machine Learning?
- Jak připravit a vyčistit data před tréninkem?
- Jaké jsou konkrétní počáteční úkoly a aktivity v projektu strojového učení?
- Jaká jsou základní pravidla pro přijetí konkrétní strategie a modelu strojového učení?
- Které parametry naznačují, že je čas přejít z lineárního modelu na hluboké učení?
Další otázky a odpovědi naleznete v EITC/AI/GCML Google Cloud Machine Learning