Я пытаюсь создать DNNCLassifier , который принимает категориальные входные данные, используя тензорный поток для обучения модели на Google Cloud Platform (GCP).У меня есть несколько столбцов категорий, в которых я использую файл vocabulary.txt.Например:
tf.feature_column.categorical_column_with_vocabulary_file(
key = "feature_name",
vocabulary_file = vocab_file,
vocabulary_size = vocab_size
),
Я потратил несколько разочаровывающих часов, обнаружив, что вы не можете использовать open () в GCP, потому что он не может обрабатывать gs: //.Поэтому я использовал следующий код для чтения в словарных файлах:
def read_vocab_file(file_path):
"""Reads a vocab file to memeory.
Args:
file_path: path to Vocab file in cloud storage bucket
Returns:
Vocab list, the size of the vocabulary """
with file_io.FileIO(file_path, 'r') as f:
#vocab_lines = open(f,'r').readlines()
vocab_lines = f.readlines()
vocab_size = len(vocab_lines)
return vocab_lines, vocab_size
Это позволяет мне представить учебное задание, в котором я передаю путь к файлам словаря в качестве аргумента.
gcloudЗадания ml-engine отправляют тренинг $ JOB_NAME \ --job-dir $ MODEL_DIR \ --runtime-версия 1.4 \ --module-name trainer.task \ - package-path trainer / \ --region $ REGION \ - \--train-files $ TRAIN_DATA \ --eval-files $ EVAL_DATA \ --vocab-paths $ VOCAB \ --latlon-data-paths $ LATLON \ --train-steps 1000 \ --eval-steps 100
Это хорошо работает для тренировок, но тогда я не могу делать прогнозы. Есть ли лучший способ обучить модель в среде механизма обучения облачным машинам Google при использовании файлов vocab.txt для создания столбцов категориальных объектов?
Любой пример кода, в котором используются категориальные функции сtf.estimator.DNNCLassifier был бы очень признателен, особенно если он может работать на GCP с оптимизацией гиперпараметров и делать прогнозы в облаке.
Спасибо