Fashion-MNIST ialah set data imej artikel Zalando, yang terdiri daripada set latihan 60,000 contoh dan set ujian 10,000 contoh. Setiap contoh ialah imej skala kelabu 28×28, dikaitkan dengan label daripada 10 kelas. Set data berfungsi sebagai pengganti drop-in langsung untuk set data MNIST asal untuk menanda aras algoritma pembelajaran mesin, memberikan alternatif yang lebih mencabar kerana kerumitan dan kebolehubahannya dalam imej berkaitan fesyen.
Untuk menggunakan set data Fashion-MNIST secara praktikal dalam Platform AI Google Cloud, seseorang mesti mengikut beberapa langkah berstruktur yang merangkumi penyediaan data, latihan model, penggunaan dan penilaian. Setiap peringkat ini memerlukan pemahaman yang komprehensif tentang kedua-dua set data dan persekitaran Google Cloud.
Langkah 1: Menyediakan Persekitaran Awan Google
Sebelum menggunakan set data, pastikan anda mempunyai akaun Google Cloud. Sediakan projek baharu dalam Google Cloud Console. Dayakan pengebilan untuk projek anda dan aktifkan Cloud AI Platform API. Persediaan ini penting kerana ia membolehkan anda memanfaatkan infrastruktur teguh Google untuk tugasan pembelajaran mesin.
1. Buat Projek Awan Google: Navigasi ke Google Cloud Console dan buat projek baharu. Berikan nama unik kepada projek anda untuk pengenalan mudah.
2. Dayakan API: Pergi ke papan pemuka API & Perkhidmatan dan dayakan Cloud AI Platform API. API ini penting untuk menggunakan model pembelajaran mesin di Google Cloud.
3. Pasang Cloud SDK: Muat turun dan pasang Google Cloud SDK pada mesin setempat anda. SDK ini menyediakan alat baris perintah `gcloud`, yang diperlukan untuk berinteraksi dengan sumber Google Cloud anda.
Langkah 2: Menyediakan Set Data Fesyen-MNIST
Set data Fashion-MNIST boleh diakses daripada pelbagai sumber, termasuk repositori GitHub rasmi. Adalah penting untuk praproses set data untuk memastikan ia berada dalam format yang betul untuk model latihan di Google Cloud.
1. Muat turun Set Data: Set data tersedia dalam pelbagai format, termasuk tatasusunan CSV dan NumPy. Untuk pengguna TensorFlow, ia boleh dimuatkan terus menggunakan modul `tensorflow.keras.datasets`.
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. Data Pra Pengolahan: Normalkan nilai piksel imej kepada julat [0, 1] dengan membahagikan dengan 255. Langkah ini penting untuk memastikan model menumpu dengan cekap semasa latihan.
python train_images = train_images/255.0 test_images = test_images/255.0
3. Bentuk Semula dan Tambah Data: Bergantung pada seni bina model, anda mungkin perlu membentuk semula data. Selain itu, pertimbangkan teknik penambahan data seperti putaran, zum dan flip mendatar untuk meningkatkan keteguhan model.
Langkah 3: Pembangunan Model
Bangunkan model pembelajaran mesin yang sesuai untuk set data Fashion-MNIST. Rangkaian Neural Konvolusi (CNN) ialah pilihan popular kerana keberkesanannya dalam tugas pengelasan imej.
1. Takrifkan Seni Bina Model: Gunakan TensorFlow atau PyTorch untuk menentukan model CNN. Seni bina biasa mungkin termasuk berbilang lapisan konvolusi diikuti oleh lapisan penggabungan maksimum dan lapisan padat yang bersambung sepenuhnya.
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. Susun Model: Pilih pengoptimum, fungsi kehilangan dan metrik yang sesuai. Untuk klasifikasi berbilang kelas, `sparse_categorical_crossentropy` biasanya digunakan.
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Latih Model: Muatkan model pada data latihan. Gunakan data pengesahan untuk memantau prestasi model dan mengelakkan pemasangan berlebihan.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
Langkah 4: Menggunakan Model pada Platform AI Awan Google
Setelah model dilatih, langkah seterusnya ialah menggunakan model tersebut pada Google Cloud AI Platform untuk ramalan berskala.
1. Simpan Model: Eksport model terlatih ke format yang serasi dengan Google Cloud, seperti TensorFlow SavedModel.
python model.save('fashion_mnist_model')
2. Muat naik Model ke Storan Awan Google: Gunakan alat baris perintah `gsutil` untuk memuat naik model ke baldi Storan Awan Google.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. Cipta Model pada Platform AI: Dalam Google Cloud Console, navigasi ke AI Platform > Models dan buat model baharu. Nyatakan nama model dan wilayah.
4. Sediakan Versi Model: Buat versi baharu model dengan menentukan laluan Cloud Storage bagi SavedModel. Konfigurasikan jenis mesin dan pilihan penskalaan berdasarkan keperluan ramalan anda.
5. Uji Kerahan: Gunakan perkhidmatan ramalan Platform AI untuk menguji model yang digunakan. Anda boleh menghantar permintaan HTTP dengan data imej ke titik akhir model dan menerima ramalan.
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)
Langkah 5: Penilaian Model dan Lelaran
Selepas penggunaan, adalah penting untuk menilai prestasi model dan mengulangi reka bentuk untuk meningkatkan ketepatan dan kecekapan.
1. Pantau Prestasi Model: Gunakan alatan pemantauan Google Cloud untuk menjejaki metrik prestasi model seperti kependaman, daya pemprosesan dan ketepatan ramalan. Data ini tidak ternilai untuk mengenal pasti kesesakan dan kawasan untuk penambahbaikan.
2. Pengujian A/B: Menjalankan ujian A/B untuk membandingkan versi model yang berbeza. Pendekatan ini membantu dalam memahami kesan perubahan dan memilih model berprestasi terbaik.
3. Penyepaduan dan Penerapan Berterusan (CI/CD): Laksanakan amalan CI/CD untuk mengautomasikan penggunaan versi model baharu. Persediaan ini memastikan bahawa penambahbaikan dihantar dengan pantas kepada pengeluaran.
4. Gelung Maklum Balas: Wujudkan gelung maklum balas dengan pengguna akhir untuk mengumpulkan cerapan tentang ramalan model. Gunakan maklum balas ini untuk memperhalusi model dan meningkatkan kaitannya dengan aplikasi dunia sebenar.
5. Melatih semula dengan Data Baharu: Kemas kini model dengan data baharu secara kerap untuk mengekalkan ketepatannya dari semasa ke semasa. Amalan ini amat penting dalam industri fesyen, di mana trend dan gaya berkembang pesat.
Set data Fashion-MNIST menyediakan kes penggunaan praktikal untuk menggunakan model klasifikasi imej pada Platform AI Google Cloud. Dengan mengikut langkah yang digariskan, seseorang boleh memanfaatkan infrastruktur Google dengan berkesan untuk membina, menggunakan dan mengekalkan model pembelajaran mesin berskala. Proses ini bukan sahaja meningkatkan ketepatan dan prestasi model tetapi juga memastikan kebolehgunaannya pada senario dunia sebenar dalam industri fesyen.
Google kerap mengemas kini Platform AInya (sehingga 2024 berkembang menjadi Platform AI Vertex). Jika anda menghadapi sebarang masalah dengan kemas kini ini, anda juga boleh mencuba kod berikut:
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}")
Soalan dan jawapan terbaru lain mengenai Pembelajaran Mesin Awan Google EITC/AI/GCML:
- Versi Python manakah yang terbaik untuk memasang TensorFlow untuk mengelakkan masalah tanpa pengedaran TF tersedia?
- Apakah rangkaian neural dalam?
- Berapa lamakah masa yang biasanya diambil untuk mempelajari asas pembelajaran mesin?
- Apakah alatan yang wujud untuk XAI (Explainable Artificial Intelligence)?
- Bagaimanakah seseorang menetapkan had pada jumlah data yang dihantar ke tf.Cetak untuk mengelakkan menjana fail log yang terlalu panjang?
- Bagaimanakah seseorang boleh mendaftar ke Google Cloud Platform untuk pengalaman praktikal dan berlatih?
- Apakah mesin vektor sokongan?
- Betapa sukarnya bagi seorang pemula untuk membuat model yang boleh membantu dalam pencarian asteroid?
- Adakah pembelajaran mesin dapat mengatasi berat sebelah?
- Apakah regularisasi?
Lihat lebih banyak soalan dan jawapan dalam Pembelajaran Mesin Awan Google EITC/AI/GCML