Fashion-MNIST არის ზალანდოს სტატიების სურათების მონაცემთა ნაკრები, რომელიც შედგება 60,000 მაგალითის სავარჯიშო ნაკრებისა და 10,000 მაგალითის სატესტო ნაკრებისგან. თითოეული მაგალითი არის 28×28 ნაცრისფერი ფერის გამოსახულება, რომელიც ასოცირდება ეტიკეტთან 10 კლასიდან. მონაცემთა ნაკრები ემსახურება როგორც ორიგინალური MNIST მონაცემთა ნაკრების პირდაპირ ჩანაცვლებას მანქანური სწავლების ალგორითმების ბენჩმარინგისთვის, რაც უფრო რთულ ალტერნატივას უზრუნველყოფს მოდასთან დაკავშირებულ სურათებში მისი სირთულისა და ცვალებადობის გამო.
Google Cloud-ის AI პლატფორმაში Fashion-MNIST მონაცემთა ნაკრების პრაქტიკულად გამოსაყენებლად, თქვენ უნდა შეასრულოთ რამდენიმე სტრუქტურირებული ნაბიჯი, რომელიც მოიცავს მონაცემთა მომზადებას, მოდელის ტრენინგს, განლაგებას და შეფასებას. თითოეული ეს ეტაპი მოითხოვს მონაცემთა და Google Cloud გარემოს ყოვლისმომცველ გაგებას.
ნაბიჯი 1: Google Cloud Environment-ის დაყენება
მონაცემთა ნაკრების გამოყენებამდე დარწმუნდით, რომ გაქვთ Google Cloud ანგარიში. დააყენეთ ახალი პროექტი Google Cloud Console-ში. ჩართეთ ბილინგი თქვენი პროექტისთვის და გაააქტიურეთ Cloud AI Platform API. ეს დაყენება მნიშვნელოვანია, რადგან ის საშუალებას გაძლევთ გამოიყენოთ Google-ის ძლიერი ინფრასტრუქტურა მანქანური სწავლების ამოცანების შესასრულებლად.
1. შექმენით Google Cloud Project: გადადით Google Cloud Console-ზე და შექმენით ახალი პროექტი. მიანიჭეთ უნიკალური სახელი თქვენს პროექტს მარტივი იდენტიფიკაციისთვის.
2. ჩართეთ API: გადადით API & Services საინფორმაციო დაფაზე და ჩართეთ Cloud AI Platform API. ეს 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 პლატფორმაზე მასშტაბური პროგნოზებისთვის.
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-ის Cloud Storage ბილიკის მითითებით. დააკონფიგურირეთ აპარატის ტიპი და სკალირების პარამეტრები თქვენი პროგნოზირების საჭიროებებზე დაყრდნობით.
5. შეამოწმეთ განლაგება: გამოიყენეთ AI პლატფორმის პროგნოზირების სერვისი განლაგებული მოდელის შესამოწმებლად. შეგიძლიათ გააგზავნოთ 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. / B ტესტირება: ჩაატარეთ A/B ტესტირება სხვადასხვა მოდელის ვერსიების შესადარებლად. ეს მიდგომა გვეხმარება ცვლილებების გავლენის გაგებაში და საუკეთესო მოდელის არჩევაში.
3. უწყვეტი ინტეგრაცია და განლაგება (CI/CD): დანერგეთ CI/CD პრაქტიკა ახალი მოდელის ვერსიების განლაგების ავტომატიზაციისთვის. ეს დაყენება უზრუნველყოფს გაუმჯობესებების სწრაფად მიწოდებას წარმოებაში.
4. უკუკავშირის მარყუჟი: შექმენით უკუკავშირის ციკლი საბოლოო მომხმარებლებთან, რათა შეაგროვოთ ინფორმაცია მოდელის პროგნოზების შესახებ. გამოიყენეთ ეს გამოხმაურება მოდელის დასაზუსტებლად და მისი შესაბამისობის გასაუმჯობესებლად რეალურ სამყაროში არსებულ აპლიკაციებთან.
5. გადამზადება ახალი მონაცემებით: რეგულარულად განაახლეთ მოდელი ახალი მონაცემებით, რათა შეინარჩუნოს მისი სიზუსტე დროთა განმავლობაში. ეს პრაქტიკა განსაკუთრებით მნიშვნელოვანია მოდის ინდუსტრიაში, სადაც ტენდენციები და სტილი სწრაფად ვითარდება.
Fashion-MNIST მონაცემთა ნაკრები უზრუნველყოფს პრაქტიკულ გამოყენებას Google Cloud-ის AI პლატფორმაზე გამოსახულების კლასიფიკაციის მოდელების გამოსაყენებლად. ჩამოთვლილი ნაბიჯების მიყოლებით, შეგიძლიათ ეფექტურად გამოიყენოთ Google-ის ინფრასტრუქტურა, რათა შეიქმნას, განათავსოს და შეინარჩუნოს მასშტაბირებადი მანქანათმცოდნეობის მოდელები. ეს პროცესი არა მხოლოდ ზრდის მოდელის სიზუსტეს და შესრულებას, არამედ უზრუნველყოფს მის გამოყენებადობას მოდის ინდუსტრიაში რეალურ სამყაროში არსებულ სცენარებზე.
Google ხშირად ანახლებს თავის AI პლატფორმას (2024 წლიდან გადაიქცა Vertex AI პლატფორმად). თუ ამ განახლებებთან დაკავშირებით რაიმე პრობლემა შეგექმნათ, ასევე შეგიძლიათ სცადოთ შემდეგი კოდი:
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:
- თქვენ ახსენეთ მრავალი სახის ალგორითმი, როგორიცაა ხაზოვანი რეგრესია, გადაწყვეტილების ხეები. ეს ყველაფერი ნეირონული ქსელია?
- რა არის მოდელის შესრულების შეფასების მეტრიკა?
- რა არის წრფივი რეგრესია?
- შესაძლებელია თუ არა სხვადასხვა ML მოდელების გაერთიანება და სამაგისტრო AI-ს შექმნა?
- რომელია ყველაზე გავრცელებული ალგორითმები, რომლებიც გამოიყენება მანქანათმცოდნეობაში?
- როგორ შევქმნათ მოდელის ვერსია?
- როგორ გამოვიყენოთ ML-ის 7 ნაბიჯი მაგალითის კონტექსტში?
- როგორ შეიძლება გამოყენებული იქნას მანქანური სწავლება მშენებლობის ნებართვების მონაცემებზე?
- რატომ შეწყდა AutoML Tables-ის წარმოება და რა ხდება მათზე?
- რა ამოცანაა მოთამაშეების მიერ დახატული დუდლების ინტერპრეტაცია ხელოვნური ინტელექტის კონტექსტში?
იხილეთ მეტი კითხვები და პასუხები EITC/AI/GCML Google Cloud Machine Learning-ში