Tensorflow 如何将词汇文本文件传递给模型,并在谷歌云平台机器学习引擎上对其进行训练

Tensorflow 如何将词汇文本文件传递给模型,并在谷歌云平台机器学习引擎上对其进行训练,tensorflow,google-cloud-platform,categorical-data,mle,vocabulary,Tensorflow,Google Cloud Platform,Categorical Data,Mle,Vocabulary,我正在尝试制作一个DNNCLassifier,它使用张量流来接受分类输入,以便在谷歌云平台(GCP)上训练模型。我有几个分类功能列,其中我使用了一个词汇表.txt文件。例如: tf.feature_column.categorical_column_with_vocabulary_file( key = "feature_name", vocabulary_file = vocab_file, vocabulary_size = vocab

我正在尝试制作一个DNNCLassifier,它使用张量流来接受分类输入,以便在谷歌云平台(GCP)上训练模型。我有几个分类功能列,其中我使用了一个词汇表.txt文件。例如:

tf.feature_column.categorical_column_with_vocabulary_file(
         key = "feature_name", 
         vocabulary_file = vocab_file,
         vocabulary_size = vocab_size
         ),
我花了几个小时沮丧地发现,您不能在GCP中使用open(),因为它不能处理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引擎作业提交培训$JOB\u名称\ --作业目录$MODEL\u目录\ --运行时版本1.4\ --模块名称trainer.task\ --套餐路径培训师/\ --地区$地区\ -- \ --列车文件$train\u数据\ --eval文件$eval_数据\ --vocab路径$vocab\ --latlon数据路径$latlon\ --火车走1000步\ --评估步骤100

这对训练很有效,但我无法做出预测在使用vocab.txt文件创建分类功能列的同时,是否有更好的方法在谷歌云机器学习引擎环境中训练模型?

任何使用分类特征和tf.estimator.DNNCLassifier的示例代码都将非常受欢迎,特别是如果它可以在GCP上运行,并进行超参数优化,并在云中进行预测


谢谢你

我意识到一切都很顺利。问题是我只能通过传递.json文件在GCP中进行预测。当我试图用一个文本文件进行预测时,我得到了“预测错误:未知错误”,我认为这是对vocab文件所做的。