Fashion-MNIST yra Zalando straipsnių vaizdų duomenų rinkinys, kurį sudaro 60,000 10,000 pavyzdžių mokymo rinkinys ir 28 28 pavyzdžių bandomasis rinkinys. Kiekvienas pavyzdys yra 10 × XNUMX pilkų tonų vaizdas, susietas su XNUMX klasių etikete. Duomenų rinkinys yra tiesioginis originalaus MNIST duomenų rinkinio pakaitalas, skirtas mašininio mokymosi algoritmų lyginamajai analizei, ir yra sudėtingesnė alternatyva dėl jo sudėtingumo ir su mada susijusių vaizdų kintamumo.
Norint praktiškai naudoti „Fashion-MNIST“ duomenų rinkinį „Google Cloud“ AI platformoje, reikia atlikti kelis struktūrizuotus veiksmus, apimančius duomenų paruošimą, modelio mokymą, diegimą ir įvertinimą. Kiekvienam iš šių etapų reikia visapusiškai suprasti duomenų rinkinį ir „Google Cloud“ aplinką.
1 veiksmas: „Google“ debesies aplinkos nustatymas
Prieš naudodami duomenų rinkinį įsitikinkite, kad turite „Google Cloud“ paskyrą. Nustatykite naują projektą „Google Cloud Console“. Įgalinkite projekto atsiskaitymą ir suaktyvinkite Cloud AI platformos API. Ši sąranka svarbi, nes leidžia panaudoti patikimą „Google“ infrastruktūrą mašininio mokymosi užduotims atlikti.
1. Sukurkite „Google“ debesies projektą: eikite į „Google Cloud Console“ ir sukurkite naują projektą. Priskirkite savo projektui unikalų pavadinimą, kad būtų lengviau jį atpažinti.
2. Įgalinti API: eikite į API ir paslaugų prietaisų skydelį ir įgalinkite Cloud AI platformos API. Ši API yra būtina norint įdiegti mašininio mokymosi modelius „Google Cloud“.
3. Įdiekite „Cloud SDK“.: atsisiųskite ir įdiekite „Google Cloud“ SDK vietiniame kompiuteryje. Šis SDK suteikia komandų eilutės įrankį „gcloud“, kuris yra būtinas norint sąveikauti su „Google Cloud“ ištekliais.
2 veiksmas: Fashion-MNIST duomenų rinkinio paruošimas
Fashion-MNIST duomenų rinkinį galima pasiekti iš įvairių šaltinių, įskaitant oficialią GitHub saugyklą. Labai svarbu iš anksto apdoroti duomenų rinkinį, kad įsitikintumėte, jog jis yra tinkamo formato mokymo modeliams „Google Cloud“.
1. Atsisiųskite duomenų rinkinį: duomenų rinkinys pasiekiamas keliais formatais, įskaitant CSV ir NumPy masyvus. „TensorFlow“ naudotojams jis gali būti tiesiogiai įkeltas naudojant „tensorflow.keras.datasets“ modulį.
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. Duomenų apdorojimas: Normalizuokite vaizdų pikselių reikšmes iki diapazono [0, 1], padalydami iš 255. Šis veiksmas yra svarbus siekiant užtikrinti, kad modelis efektyviai suartėtų treniruotės metu.
python train_images = train_images/255.0 test_images = test_images/255.0
3. Performuoti ir papildyti duomenis: Atsižvelgiant į modelio architektūrą, gali tekti pakeisti duomenų formą. Be to, apsvarstykite duomenų papildymo metodus, tokius kaip sukimas, mastelio keitimas ir horizontalus apvertimas, kad padidintumėte modelio tvirtumą.
3 žingsnis: modelio kūrimas
Sukurkite mašininio mokymosi modelį, tinkamą Fashion-MNIST duomenų rinkiniui. Konvoliuciniai neuroniniai tinklai (CNN) yra populiarus pasirinkimas dėl jų veiksmingumo atliekant vaizdų klasifikavimo užduotis.
1. Apibrėžkite modelio architektūrą: CNN modeliui apibrėžti naudokite TensorFlow arba PyTorch. Įprastą architektūrą gali sudaryti keli konvoliuciniai sluoksniai, po kurių seka maksimalus sujungimo sluoksniai ir visiškai sujungtas tankus sluoksnis.
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. Sudarykite modelį: pasirinkite tinkamą optimizavimo priemonę, praradimo funkciją ir metriką. Kelių klasių klasifikavimui dažniausiai naudojama „sparse_categorical_crossentropy“.
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Treniruok modelį: pritaikykite modelį prie treniruočių duomenų. Naudokite patvirtinimo duomenis, kad stebėtumėte modelio veikimą ir išvengtumėte per didelio pritaikymo.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
4 veiksmas: modelio diegimas „Google Cloud AI“ platformoje
Kai modelis bus apmokytas, kitas žingsnis yra įdiegti jį „Google Cloud AI“ platformoje, kad būtų galima keisti prognozes.
1. Išsaugokite modelį: Eksportuokite apmokytą modelį į formatą, suderinamą su „Google Cloud“, pvz., „TensorFlow SavedModel“.
python model.save('fashion_mnist_model')
2. Įkelkite modelį į „Google Cloud Storage“.: naudokite komandinės eilutės įrankį „gsutil“, kad įkeltumėte modelį į „Google Cloud Storage“ segmentą.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. Sukurkite modelį AI platformoje: „Google Cloud Console“ eikite į AI platforma > Modeliai ir sukurkite naują modelį. Nurodykite modelio pavadinimą ir regioną.
4. Įdiekite modelio versiją: sukurkite naują modelio versiją nurodydami SavedModel debesies saugyklos kelią. Konfigūruokite mašinos tipą ir mastelio parinktis pagal savo numatymo poreikius.
5. Išbandykite diegimą: naudokite AI platformos numatymo paslaugą, kad išbandytumėte įdiegtą modelį. Galite siųsti HTTP užklausas su vaizdo duomenimis į modelio galutinį tašką ir gauti prognozes.
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 veiksmas: modelio įvertinimas ir iteracija
Po įdiegimo svarbu įvertinti modelio veikimą ir kartoti dizainą, kad būtų padidintas tikslumas ir efektyvumas.
1. Stebėkite modelio našumą: naudokite „Google Cloud“ stebėjimo įrankius, kad stebėtumėte modelio našumo metriką, pvz., delsą, pralaidumą ir numatymo tikslumą. Šie duomenys yra neįkainojami norint nustatyti kliūtis ir sritis, kurias reikia tobulinti.
2. A/B testavimas: Atlikite A/B testavimą, kad palygintumėte skirtingas modelių versijas. Šis metodas padeda suprasti pakeitimų poveikį ir pasirinkti našiausią modelį.
3. Nuolatinis integravimas ir diegimas (CI/CD): Įdiekite CI/CD praktiką, kad automatizuotų naujų modelių versijų diegimą. Ši sąranka užtikrina, kad patobulinimai būtų greitai pristatyti į gamybą.
4. Atsiliepimų ciklas: sukurkite grįžtamąjį ryšį su galutiniais vartotojais, kad gautumėte įžvalgų apie modelio prognozes. Naudokite šį atsiliepimą, kad tiksliai sureguliuotumėte modelį ir padidintumėte jo tinkamumą realaus pasaulio programoms.
5. Perkvalifikavimas naudojant naujus duomenis: reguliariai atnaujinkite modelį naujais duomenimis, kad laikui bėgant išlaikytumėte jo tikslumą. Ši praktika ypač svarbi mados industrijoje, kur tendencijos ir stiliai sparčiai vystosi.
Fashion-MNIST duomenų rinkinys yra praktinis pavyzdys, kaip įdiegti vaizdų klasifikavimo modelius „Google Cloud“ AI platformoje. Atlikdami nurodytus veiksmus, galite efektyviai panaudoti „Google“ infrastruktūrą kuriant, diegiant ir prižiūrint keičiamo dydžio mašininio mokymosi modelius. Šis procesas ne tik padidina modelio tikslumą ir našumą, bet ir užtikrina jo pritaikymą realaus pasaulio scenarijuose mados industrijoje.
„Google“ dažnai atnaujina savo AI platformą (nuo 2024 m. tapo Vertex AI platforma). Jei kyla problemų dėl šių naujinimų, taip pat galite išbandyti šį 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}")
Kiti naujausi klausimai ir atsakymai apie EITC/AI/GCML „Google Cloud Machine Learning“:
- Kaip nuspręsti, kurį mašininio mokymosi algoritmą naudoti ir kaip jį rasti?
- Kuo skiriasi federacinis mokymasis nuo „Edge Computing & On-Device“ mašininio mokymosi?
- Kaip paruošti ir išvalyti duomenis prieš treniruotę?
- Turėjau omenyje tokias veiklas kaip klasifikavimas, identifikavimas ir tt Norėčiau visų galimų veiklų sąrašo ir paaiškinimo, ką reiškia kiekviena.
- Kokias veiklas galima atlikti naudojant ML ir kaip jas panaudoti?
- Kokios yra konkrečios strategijos priėmimo taisyklės? Ar galėtumėte nurodyti konkrečius parametrus, pagal kuriuos suprantu, ar verta naudoti sudėtingesnį modelį?
- Su kokiu parametru suprantu, ar laikas pereiti nuo linijinio modelio prie gilaus mokymosi?
- Kuri „Python“ versija būtų geriausia norint įdiegti „TensorFlow“, kad būtų išvengta problemų, kai nėra TF paskirstymo?
- Kas yra gilusis neuroninis tinklas?
- Kiek paprastai užtrunka išmokti mašininio mokymosi pagrindus?
Peržiūrėkite daugiau klausimų ir atsakymų EITC/AI/GCML Google Cloud Machine Learning