bow_encoder

时间:2018-02-16 16:58:35

标签: tensorflow

我正在尝试实现服务功能,以便能够对保存的文本分类模型进行预测。据我所知,目标是创建一个与train_input_fn / eval_input_fn几乎完全相同的函数?我有以下实现这些功能:

def generate_training_input_fn(filename):
  train_raw = pd.read_csv(filename[0], header=None)

  x_train = train_raw.iloc[:, 1]
  y_train = train_raw.iloc[:, 0]

  vocab_processor = tf.contrib.learn.preprocessing.VocabularyProcessor(MAX_DOCUMENT_LENGTH)
  x_train = np.array(list(vocab_processor.fit_transform(x_train)))

  n_words = len(vocab_processor.vocabulary_)
  #print('Total words: %d' % n_words)

# Save a vocabulary list to file. Needed by the serving_input_fn for exporting the model.

 with open('vocab_processor.pickle', 'wb') as f:
      pickle.dump(vocab_processor, f)

  features = tf.contrib.layers.bow_encoder(
      x_train, vocab_size=n_words, embed_dim=EMBEDDING_SIZE)

  return features, y_train

def generate_eval_input_fn(filename):
  eval_raw = pd.read_csv(filename[0], header=None)

  x_eval = eval_raw.iloc[:, 1]
  y_eval = eval_raw.iloc[:, 0]

  with open('vocab_processor.pickle', 'rb') as f:
      vocab_processor = pickle.load(f)
  n_words = len(vocab_processor.vocabulary_)
  x_eval = np.array(list(vocab_processor.transform(x_eval)))

  features = tf.contrib.layers.bow_encoder(
      x_eval, vocab_size=n_words, embed_dim=EMBEDDING_SIZE)
#labels = tf.one_hot(y_eval, 15, 1, 0)

  return features, y_eval

有评论“将词汇表保存到文件。需要由serving_input_fn导出模型”但是没有实现这样的功能,并且使用export_strategies = None创建了实验(从另一个编码器获得此代码)。我试图在人口普查教程中实现serve_input_fn

def csv_serving_input_fn():
  csv_row = tf.placeholder(shape=[None],dtype=tf.string)
  features = parse_csv(csv_row)

  return tf.contrib.learn.InputFnOps(features, None, {'csv_row': csv_row})

但不知道如何实现parse_csv,因为我的generate_eval_input_fn将整个csv作为pandas DataFrame

0 个答案:

没有答案