Fashion-MNIST to zbiór danych obrazów artykułów Zalando, składający się z zestawu szkoleniowego 60,000 10,000 przykładów i zestawu testowego 28 28 przykładów. Każdy przykład to obraz w skali szarości 10×XNUMX, powiązany z etykietą z XNUMX klas. Zestaw danych służy jako bezpośredni zamiennik oryginalnego zestawu danych MNIST do testowania algorytmów uczenia maszynowego, zapewniając trudniejszą alternatywę ze względu na złożoność i zmienność obrazów związanych z modą.
Aby praktycznie wykorzystać zbiór danych Fashion-MNIST na platformie AI Google Cloud, należy wykonać kilka ustrukturyzowanych kroków, które obejmują przygotowanie danych, szkolenie modelu, wdrożenie i ocenę. Każdy z tych etapów wymaga kompleksowego zrozumienia zarówno zbioru danych, jak i środowiska Google Cloud.
Krok 1: Konfigurowanie środowiska Google Cloud
Przed użyciem zestawu danych upewnij się, że masz konto Google Cloud. Skonfiguruj nowy projekt w Google Cloud Console. Włącz rozliczanie dla swojego projektu i aktywuj Cloud AI Platform API. Ta konfiguracja jest ważna, ponieważ pozwala wykorzystać solidną infrastrukturę Google do zadań uczenia maszynowego.
1. Utwórz projekt Google Cloud: Przejdź do konsoli Google Cloud i utwórz nowy projekt. Przypisz unikalną nazwę do swojego projektu, aby ułatwić identyfikację.
2. Włącz API: Przejdź do pulpitu API i usług i włącz Cloud AI Platform API. To API jest niezbędne do wdrażania modeli uczenia maszynowego w Google Cloud.
3. Zainstaluj pakiet Cloud SDK: Pobierz i zainstaluj Google Cloud SDK na swoim komputerze lokalnym. Ten SDK udostępnia narzędzie wiersza poleceń `gcloud`, które jest niezbędne do interakcji z zasobami Google Cloud.
Krok 2: Przygotowanie zestawu danych Fashion-MNIST
Dostęp do zbioru danych Fashion-MNIST można uzyskać z różnych źródeł, w tym z oficjalnego repozytorium GitHub. Konieczne jest wstępne przetworzenie zbioru danych, aby upewnić się, że ma on poprawny format do trenowania modeli w Google Cloud.
1. Pobierz zbiór danych: Zestaw danych jest dostępny w wielu formatach, w tym CSV i tablice NumPy. Użytkownicy TensorFlow mogą go bezpośrednio załadować za pomocą modułu `tensorflow.keras.datasets`.
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. Wstępne przetwarzanie danych:Normalizuj wartości pikseli obrazów do zakresu [0, 1], dzieląc przez 255. Ten krok jest ważny dla zapewnienia wydajnej konwergencji modelu podczas treningu.
python train_images = train_images/255.0 test_images = test_images/255.0
3. Przekształcaj i rozszerzaj dane: W zależności od architektury modelu może być konieczne przekształcenie danych. Ponadto należy rozważyć techniki rozszerzania danych, takie jak obrót, powiększenie i odwrócenie poziome, aby zwiększyć solidność modelu.
Krok 3: Rozwój modelu
Opracuj model uczenia maszynowego odpowiedni dla zbioru danych Fashion-MNIST. Sieci neuronowe splotowe (CNN) są popularnym wyborem ze względu na ich skuteczność w zadaniach klasyfikacji obrazów.
1. Zdefiniuj architekturę modelu: Użyj TensorFlow lub PyTorch, aby zdefiniować model CNN. Typowa architektura może obejmować wiele warstw splotowych, po których następują warstwy max-pooling i w pełni połączona gęsta warstwa.
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. Skompiluj model: Wybierz odpowiedni optymalizator, funkcję straty i metryki. W przypadku klasyfikacji wieloklasowej powszechnie stosuje się `sparse_categorical_crossentropy`.
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Trenuj model: Dopasuj model do danych treningowych. Użyj danych walidacyjnych, aby monitorować wydajność modelu i uniknąć nadmiernego dopasowania.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
Krok 4: Wdrażanie modelu na platformie Google Cloud AI
Po wytrenowaniu modelu następnym krokiem jest wdrożenie go na platformie Google Cloud AI w celu uzyskania skalowalnych prognoz.
1. Zapisz model: Eksportuj wytrenowany model do formatu zgodnego z Google Cloud, takiego jak TensorFlow SavedModel.
python model.save('fashion_mnist_model')
2. Prześlij model do Google Cloud Storage: Użyj narzędzia wiersza poleceń `gsutil`, aby przesłać model do kontenera Google Cloud Storage.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. Utwórz model na platformie AI: W Google Cloud Console przejdź do AI Platform > Models i utwórz nowy model. Podaj nazwę modelu i region.
4. Wdrażanie wersji modelu: Utwórz nową wersję modelu, określając ścieżkę Cloud Storage SavedModel. Skonfiguruj typ maszyny i opcje skalowania na podstawie swoich potrzeb predykcyjnych.
5. Przetestuj wdrożenie: Użyj usługi predykcyjnej platformy AI, aby przetestować wdrożony model. Możesz wysyłać żądania HTTP z danymi obrazu do punktu końcowego modelu i odbierać predykcje.
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: Ocena modelu i iteracja
Po wdrożeniu ważne jest, aby ocenić wydajność modelu i powtarzać prace nad projektem w celu zwiększenia dokładności i efektywności.
1. Monitoruj wydajność modelu: Użyj narzędzi monitorujących Google Cloud, aby śledzić metryki wydajności modelu, takie jak opóźnienie, przepustowość i dokładność prognoz. Dane te są nieocenione w identyfikowaniu wąskich gardeł i obszarów wymagających poprawy.
2. Testowanie A/B: Przeprowadź testy A/B, aby porównać różne wersje modelu. Takie podejście pomaga zrozumieć wpływ zmian i wybrać najlepiej działający model.
3. Ciągła integracja i wdrażanie (CI/CD): Wdrażanie praktyk CI/CD w celu automatyzacji wdrażania nowych wersji modeli. Taka konfiguracja zapewnia szybkie dostarczanie ulepszeń do produkcji.
4. Sprzężenie zwrotne: Utwórz pętlę sprzężenia zwrotnego z użytkownikami końcowymi, aby zebrać informacje na temat przewidywań modelu. Użyj tego sprzężenia zwrotnego, aby dostroić model i zwiększyć jego trafność w rzeczywistych zastosowaniach.
5. Ponowne szkolenie przy użyciu nowych danych: Regularnie aktualizuj model nowymi danymi, aby utrzymać jego dokładność w czasie. Praktyka ta jest szczególnie ważna w branży modowej, gdzie trendy i style ewoluują szybko.
Zestaw danych Fashion-MNIST zapewnia praktyczny przypadek użycia do wdrażania modeli klasyfikacji obrazów na platformie AI Google Cloud. Postępując zgodnie z opisanymi krokami, można skutecznie wykorzystać infrastrukturę Google do tworzenia, wdrażania i utrzymywania skalowalnych modeli uczenia maszynowego. Ten proces nie tylko zwiększa dokładność i wydajność modelu, ale także zapewnia jego przydatność do rzeczywistych scenariuszy w branży modowej.
Google często aktualizuje swoją platformę AI (od 2024 r. ewoluowała w platformę Vertex AI). Jeśli napotkasz jakiekolwiek problemy z tymi aktualizacjami, możesz również wypróbować następujący kod:
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}")
Inne niedawne pytania i odpowiedzi dotyczące EITC/AI/GCML Uczenie Maszynowe Google Cloud:
- Wspomniałeś o wielu rodzajach algorytmów, takich jak regresja liniowa, drzewa decyzyjne. Czy to wszystko sieci neuronowe?
- Jakie są wskaźniki oceny wydajności modelu?
- Czym jest regresja liniowa?
- Czy można połączyć różne modele uczenia maszynowego i zbudować nadrzędną sztuczną inteligencję?
- Jakie są najczęstsze algorytmy stosowane w uczeniu maszynowym?
- Jak stworzyć wersję modelu?
- Jak zastosować 7 kroków ML w przykładowym kontekście?
- W jaki sposób uczenie maszynowe można zastosować do danych dotyczących pozwoleń na budowę?
- Dlaczego tabele AutoML zostały wycofane i co je zastępuje?
- Jakie jest zadanie interpretacji rysunków rysowanych przez graczy w kontekście sztucznej inteligencji?
Zobacz więcej pytań i odpowiedzi w EITC/AI/GCML Google Cloud Machine Learning