Как импортировать данные в набор данных и переобучить пользовательскую модель в Google Cloud AutoML - PullRequest
0 голосов
/ 04 октября 2018

Я новый разработчик в GCP и узнаю о пользовательской модели Google Cloud AutoML.но у меня есть 2 проблемы с AutoML Vision.

1.Я не могу импортировать данные из CSV-файла в облачном хранилище в набор данных.Я использую C # для вызова RestAPI, но его ошибка 404. Ниже мой код.

var uri = "https://automl.googleapis.com/v1beta1/projects/{project-id}/locations/us-central1/datasets/{dataset-id}:import";

        var request = (HttpWebRequest)WebRequest.Create(uri);
        request.Method = "POST";
        request.ContentType = "application/json";
        request.Headers.Add("Authorization", "Bearer " + _token);

        using (var streamWriter = new StreamWriter(request.GetRequestStream()))
        {
            string json = "{\"inputUris\":\"gs://{bucket-name}/Vehicles/csv/{csv-file-name}.csv\"}";
            Console.WriteLine(json);
            streamWriter.Write(json);
            streamWriter.Flush();
            streamWriter.Close();
        }

        try
        {
            var httpResponse = (HttpWebResponse)request.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                var result = streamReader.ReadToEnd();
                Console.WriteLine(result);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

2.Как я могу восстановить пользовательскую модель, используя C # или RestAPI

Например: пользователь загружает новое изображение чего-либо с меткой для этого изображения.затем создайте CSV-файл и загрузите его в облачное хранилище.Поэтому я хотел бы импортировать набор данных с использованием этого CSV-файла, а затем переобучить пользовательскую модель только изображению внутри CSV-файла (добавить новое обучение обучению старой модели).

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

В дополнение к ответу @Awais, правильный api вызова -

https://automl.googleapis.com/v1beta1/projects/{id-project}/locations/us-central1/datasets/{id-dataset}:importData

, а правильная полезная нагрузка формата json для этой функции -

{
    "inputConfig": {
        "gcsSource": {
            "inputUris": [
                "gs://my-bucket-vcm/uploads/app/csv/19_03_2019_18_16_35.csv"
            ]
        }
    }
}

Источник

0 голосов
/ 12 октября 2018

Ответ на вопрос 1: Я предлагаю вам еще раз проверить CSV-файл, проверьте эту ссылку Пример:

gs://my-project-lcm/training-data/file1.txt,Sports,Basketball
gs://my-project-lcm/training-data/ubuntu.zip,Computers,Software,Operating_Systems,Linux,Ubuntu
file://news/documents/file2.txt,Sports,Baseball
"Miles Davis was an American jazz trumpeter, bandleader, and composer.",Arts_Entertainment,Music,Jazz
TRAIN,gs://my-project-lcm/training-data/astros.txt,Sports,Baseball
VALIDATE,gs://my-project-lcm/training-data/mariners.txt,Sports,Baseball
TEST,gs://my-project-lcm/training-data/cubs.txt,Sports,Baseball

Ответ на вопрос 2: Я думаю, что при переобученииВаш набор данных (с новыми изображениями), он создаст новую модель, используя весь набор данных (с новыми изображениями).Если вы посмотрите на список моделей, вы увидите, что у вас будет 2 модели и набор данных.

Это локон, который нужно использовать, если вы хотите импортировать набор данных:

curl 
  -X POST 
  -H "Authorization: Bearer here-access-token" 
  -H "Content-Type: application/json" 
  https://automl.googleapis.com/v1beta1/projects/{id-project}/locations/us-central1/datasets/{id-dataset}:import \
  -d '{
    "inputUris": "gs://name-bucket-vcm/csv/file-csv.csv",
  }'

Вот код Python:

import requests

url = "https://automl.googleapis.com/v1beta1/projects/{id-project}/locations/us-central1/datasets/{id-dataset}:import"

payload = "{"inputUris": "gs://bucket-vcm/csv/file-csv.csv"}"
headers = {
    'Content-Type': "application/json"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
...