Fashion-MNIST - гэта набор даных малюнкаў артыкулаў Zalando, які складаецца з навучальнага набору з 60,000 10,000 прыкладаў і тэставага набору з 28 28 прыкладаў. Кожны прыклад уяўляе сабой выяву ў адценнях шэрага 10×XNUMX, звязаную з цэтлікам з XNUMX класаў. Набор даных служыць прамой заменай арыгінальнага набору даных MNIST для параўнання алгарытмаў машыннага навучання, забяспечваючы больш складаную альтэрнатыву з-за сваёй складанасці і зменлівасці ў відарысах, звязаных з модай.
Каб практычна выкарыстоўваць набор даных Fashion-MNIST на платформе штучнага інтэлекту Google Cloud, трэба выканаць некалькі структураваных этапаў, якія ўключаюць падрыхтоўку даных, навучанне мадэлі, разгортванне і ацэнку. Кожны з гэтых этапаў патрабуе поўнага разумення як набору даных, так і асяроддзя Google Cloud.
Крок 1: Налада Google Cloud Environment
Перш чым выкарыстоўваць набор даных, пераканайцеся, што ў вас ёсць уліковы запіс Google Cloud. Наладзьце новы праект у Google Cloud Console. Уключыце білінг для вашага праекта і актывуйце Cloud AI Platform API. Гэтая налада важная, бо дазваляе выкарыстоўваць надзейную інфраструктуру Google для задач машыннага навучання.
1. Стварыце праект Google Cloud: перайдзіце ў Google Cloud Console і стварыце новы праект. Прызначце унікальнае імя вашаму праекту для лёгкай ідэнтыфікацыі.
2. Уключыць API: Перайдзіце на прыборную панэль API & Services і ўключыце API Cloud AI Platform. Гэты API неабходны для разгортвання мадэляў машыннага навучання ў Google Cloud.
3. Усталюйце Cloud SDK: Спампуйце і ўсталюйце Google Cloud SDK на вашым лакальным кампутары. Гэты SDK забяспечвае інструмент каманднага радка `gcloud`, які неабходны для ўзаемадзеяння з вашымі рэсурсамі Google Cloud.
Крок 2: Падрыхтоўка набору даных Fashion-MNIST
Доступ да набору дадзеных Fashion-MNIST можна атрымаць з розных крыніц, у тым ліку з афіцыйнага рэпазітара GitHub. Вельмі важна папярэдне апрацаваць набор даных, каб пераканацца, што ён знаходзіцца ў правільным фармаце для навучальных мадэляў у Google Cloud.
1. Спампаваць набор дадзеных: набор даных даступны ў розных фарматах, уключаючы масівы CSV і NumPy. Для карыстальнікаў TensorFlow яго можна загрузіць непасрэдна з дапамогай модуля `tensorflow.keras.datasets`.
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. папярэдняя апрацоўка дадзеных: Нармалізуйце значэнні пікселяў малюнкаў у дыяпазоне [0, 1] шляхам дзялення на 255. Гэты крок важны для забеспячэння эфектыўнага збліжэння мадэлі падчас навучання.
python train_images = train_images/255.0 test_images = test_images/255.0
3. Змена формы і дапаўненне даных: У залежнасці ад архітэктуры мадэлі вам можа спатрэбіцца змяніць форму даных. Акрамя таго, разгледзьце метады павелічэння дадзеных, такія як паварот, маштабаванне і гарызантальнае перагортванне, каб павысіць трываласць мадэлі.
Крок 3: Распрацоўка мадэлі
Распрацуйце мадэль машыннага навучання, прыдатную для набору даных Fashion-MNIST. Згорткавыя нейронныя сеткі (CNN) з'яўляюцца папулярным выбарам з-за іх эфектыўнасці ў задачах класіфікацыі відарысаў.
1. Вызначце архітэктуру мадэлі: Выкарыстоўвайце TensorFlow або PyTorch для вызначэння мадэлі CNN. Тыповая архітэктура можа ўключаць некалькі згортчных слаёў, за якімі ідуць слаі з максімальным аб'яднаннем, і цалкам звязаны шчыльны пласт.
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. Складзіце мадэль: Выберыце адпаведны аптымізатар, функцыю страт і паказчыкі. Для шматкласавай класіфікацыі звычайна выкарыстоўваецца `sparse_categorical_crossentropy`.
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Трэніруйце мадэль: Падагнаць мадэль на навучальныя даныя. Выкарыстоўвайце даныя праверкі, каб кантраляваць прадукцыйнасць мадэлі і пазбягаць перападбору.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
Крок 4: Разгортванне мадэлі на платформе Google Cloud AI
Пасля навучання мадэлі наступным крокам з'яўляецца разгортванне яе на платформе Google Cloud AI Platform для маштабаваных прагнозаў.
1. Захавайце мадэль: Экспарт навучанай мадэлі ў фармат, сумяшчальны з Google Cloud, напрыклад TensorFlow SavedModel.
python model.save('fashion_mnist_model')
2. Загрузіце мадэль у Google Cloud Storage: Выкарыстоўвайце інструмент каманднага радка `gsutil`, каб загрузіць мадэль у вядро Google Cloud Storage.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. Стварыце мадэль на платформе AI: у Google Cloud Console перайдзіце да Платформа AI > Мадэлі і стварыце новую мадэль. Пакажыце назву мадэлі і рэгіён.
4. Разгарнуць мадэльную версію: Стварыце новую версію мадэлі, указаўшы шлях да воблачнага сховішча SavedModel. Наладзьце тып машыны і параметры маштабавання ў адпаведнасці з вашымі патрэбамі прагназавання.
5. Праверце разгортванне: Выкарыстоўвайце службу прагназавання платформы AI Platform, каб праверыць разгорнутую мадэль. Вы можаце адпраўляць HTTP-запыты з дадзенымі выявы да канчатковай кропкі мадэлі і атрымліваць прагнозы.
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: Ацэнка мадэлі і ітэрацыя
Пасля разгортвання важна ацаніць прадукцыйнасць мадэлі і паўтарыць дызайн для павышэння дакладнасці і эфектыўнасці.
1. Манітор прадукцыйнасці мадэлі: Выкарыстоўвайце інструменты маніторынгу Google Cloud для адсочвання такіх паказчыкаў прадукцыйнасці мадэлі, як затрымка, прапускная здольнасць і дакладнасць прагназавання. Гэтыя даныя неацэнныя для выяўлення вузкіх месцаў і абласцей для паляпшэння.
2. A/B тэставання: Правядзіце тэставанне A/B для параўнання розных версій мадэляў. Такі падыход дапамагае зразумець уплыў змяненняў і выбраць найбольш прадукцыйную мадэль.
3. Бесперапынная інтэграцыя і разгортванне (CI/CD): Укараненне практыкі CI/CD для аўтаматызацыі разгортвання новых версій мадэляў. Гэтая ўстаноўка гарантуе, што паляпшэнні хутка дастаўляюцца ў вытворчасць.
4. Петля зваротнай сувязі: Устанавіце зваротную сувязь з канчатковымі карыстальнікамі для збору інфармацыі аб прагнозах мадэлі. Выкарыстоўвайце гэтую зваротную сувязь, каб наладзіць мадэль і павысіць яе адпаведнасць рэальным праграмам.
5. Перападрыхтоўка з новымі дадзенымі: Рэгулярна абнаўляйце мадэль новымі дадзенымі, каб з часам падтрымліваць яе дакладнасць. Гэтая практыка асабліва важная ў індустрыі моды, дзе тэндэнцыі і стылі хутка развіваюцца.
Набор даных Fashion-MNIST забяспечвае практычны варыянт выкарыстання мадэляў класіфікацыі відарысаў на платформе AI Google Cloud. Выконваючы апісаныя крокі, можна эфектыўна выкарыстоўваць інфраструктуру Google для стварэння, разгортвання і абслугоўвання маштабуемых мадэляў машыннага навучання. Гэты працэс не толькі павышае дакладнасць і прадукцыйнасць мадэлі, але і забяспечвае яе прымяненне да рэальных сцэнарыяў у індустрыі моды.
Google часта абнаўляе сваю платформу штучнага інтэлекту (па стане на 2024 год ператварылася ў платформу Vertex AI Platform). Калі ў вас узніклі праблемы з гэтымі абнаўленнямі, вы таксама можаце паспрабаваць наступны код:
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}")
Іншыя апошнія пытанні і адказы адносна EITC/AI/GCML Google Cloud Machine Learning:
- Калі ў матэрыялах для чытання гаворыцца пра «выбар правільнага алгарытму», ці азначае гэта, што практычна ўсе магчымыя алгарытмы ўжо існуюць? Як мы ведаем, што алгарытм з'яўляецца "правільным" для канкрэтнай праблемы?
- Якія гіперпараметры выкарыстоўваюцца ў машынным навучанні?
- Whawt - гэта мова праграмавання для машыннага навучання, гэта проста Python
- Як машыннае навучанне ўжываецца ў свеце навукі?
- Як вы вырашыце, які алгарытм машыннага навучання выкарыстоўваць і як яго знайсці?
- Якія адрозненні паміж Federated Learning, Edge Computing і On-Device Machine Learning?
- Як падрыхтаваць і ачысціць дадзеныя перад трэніроўкай?
- Якія канкрэтныя першапачатковыя задачы і дзеянні ў праекце машыннага навучання?
- Якія правілы прымянення пэўнай стратэгіі і мадэлі машыннага навучання?
- Якія параметры паказваюць, што прыйшоў час перайсці ад лінейнай мадэлі да глыбокага навучання?
Больш пытанняў і адказаў глядзіце ў EITC/AI/GCML Google Cloud Machine Learning