TFX এর জন্য TensorFlow মডেলিং কোড ডিজাইন করা

TFX-এর জন্য আপনার TensorFlow মডেলিং কোড ডিজাইন করার সময় মডেলিং API-এর পছন্দ সহ কয়েকটি আইটেম সম্পর্কে সচেতন হতে হবে।

  • ব্যবহার করে: Transform থেকে SavedModel এবং ExampleGen থেকে ডেটা
  • নির্গত: SavedModel বিন্যাসে প্রশিক্ষিত মডেল

আপনার মডেলের ইনপুট স্তরটি একটি ট্রান্সফর্ম উপাদান দ্বারা তৈরি করা SavedModel থেকে ব্যবহার করা উচিত এবং ট্রান্সফর্ম মডেলের স্তরগুলি আপনার মডেলের সাথে অন্তর্ভুক্ত করা উচিত যাতে আপনি যখন আপনার SavedModel এবং EvalSavedModel রপ্তানি করবেন তখন তারা ট্রান্সফর্ম দ্বারা তৈরি করা রূপান্তরগুলিকে অন্তর্ভুক্ত করবে। উপাদান

TFX-এর জন্য একটি সাধারণ TensorFlow মডেল ডিজাইন দেখতে এইরকম:

def _build_estimator(tf_transform_dir,
                     config,
                     hidden_units=None,
                     warm_start_from=None):
  """Build an estimator for predicting the tipping behavior of taxi riders.

  Args:
    tf_transform_dir: directory in which the tf-transform model was written
      during the preprocessing step.
    config: tf.contrib.learn.RunConfig defining the runtime environment for the
      estimator (including model_dir).
    hidden_units: [int], the layer sizes of the DNN (input layer first)
    warm_start_from: Optional directory to warm start from.

  Returns:
    Resulting DNNLinearCombinedClassifier.
  """
  metadata_dir = os.path.join(tf_transform_dir,
                              transform_fn_io.TRANSFORMED_METADATA_DIR)
  transformed_metadata = metadata_io.read_metadata(metadata_dir)
  transformed_feature_spec = transformed_metadata.schema.as_feature_spec()

  transformed_feature_spec.pop(_transformed_name(_LABEL_KEY))

  real_valued_columns = [
      tf.feature_column.numeric_column(key, shape=())
      for key in _transformed_names(_DENSE_FLOAT_FEATURE_KEYS)
  ]
  categorical_columns = [
      tf.feature_column.categorical_column_with_identity(
          key, num_buckets=_VOCAB_SIZE + _OOV_SIZE, default_value=0)
      for key in _transformed_names(_VOCAB_FEATURE_KEYS)
  ]
  categorical_columns += [
      tf.feature_column.categorical_column_with_identity(
          key, num_buckets=_FEATURE_BUCKET_COUNT, default_value=0)
      for key in _transformed_names(_BUCKET_FEATURE_KEYS)
  ]
  categorical_columns += [
      tf.feature_column.categorical_column_with_identity(
          key, num_buckets=num_buckets, default_value=0)
      for key, num_buckets in zip(
          _transformed_names(_CATEGORICAL_FEATURE_KEYS),  #
          _MAX_CATEGORICAL_FEATURE_VALUES)
  ]
  return tf.estimator.DNNLinearCombinedClassifier(
      config=config,
      linear_feature_columns=categorical_columns,
      dnn_feature_columns=real_valued_columns,
      dnn_hidden_units=hidden_units or [100, 70, 50, 25],
      warm_start_from=warm_start_from)