如何导出估算器tf.estimator.DNNClassifier

大家好,这是我的代码,我仍然是使用tensorflow的初学者,这是我的代码正在尝试运行文本分类DNN,直到现在一切正常。我想保存我的模型并导入它,以便可以用它来预测新值,但是我不知道该怎么做。


让您对正在尝试做的事情有一个大致的了解。我有2个文件夹(培训和测试),每个文件夹都有(4个文件夹(分类类别))


import tensorflow as tf

import tensorflow_hub as hub

import matplotlib.pyplot as plt

import numpy as np

import os

import pandas as pd

import re

import seaborn as sns

import logging




print("Loading all files from directory ...")

# Load all files from a directory in a DataFrame.

def load_directory_data(directory):

  data = {}

  data["sentence"] = []

  data["tnemitnes"] = []

  print("getting in a loop")

  for file_path in os.listdir(directory):

    with tf.gfile.GFile(os.path.join(directory, file_path), "r") as f:

      print("directory : ",directory)

      print("file path : ",file_path)

      data["sentence"].append(f.read())

      data["tnemitnes"].append(re.match("(\d+)\.txt", file_path).group(1))

  return pd.DataFrame.from_dict(data)


print("merging all files in the training set ...")

# Merge all type of emails examples, add a polarity column and shuffle.

def load_dataset(directory):

  pos_df = load_directory_data(os.path.join("train/br"))

  neg_df = load_directory_data(os.path.join(directory, "train/mi"))

  dos_df = load_directory_data(os.path.join(directory, "train/Brouillons")) #dsd

  nos_df = load_directory_data(os.path.join(directory, "train/favoris")) #dsd

  pos_df["polarity"] = 3

  neg_df["polarity"] = 2

  dos_df["polarity"] = 1

  nos_df["polarity"] = 0

  return pd.concat([pos_df, neg_df, dos_df , nos_df]).sample(frac=1).reset_index(drop=True)


print("Getting the data from files ...")

# Download and process the dataset files.

def download_and_load_datasets():

  train_df = load_dataset(os.path.dirname("train"))

  test_df = load_dataset(os.path.dirname("test"))

  

  return train_df, test_df


现在,当我添加了估算器导出功能后,我开始要求提供serving_input_fn,说实话,我确实很难理解如何创建它。

如果有更简单的方法,那就更好了。


哆啦的时光机
浏览 161回答 3
3回答

函数式编程

我要做的就是将model_dir = os.getcwd()+'\ Model'添加到估算器中model_dir= os.getcwd()+'\Model'这是新代码,我创建了一个新的Folder并将其命名为model。estimator = tf.estimator.DNNClassifier(    hidden_units=[10, 20],    feature_columns=[embedded_text_feature_column],    n_classes=4,    optimizer=tf.train.AdagradOptimizer(learning_rate=0.003),    model_dir= os.getcwd()+'\Model')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python