This page was translated by the Cloud Translation API.
Switch to English

TensorFlow মডেল বিশ্লেষণ

TensorFlow মূল উপাদান সম্প্রসারিত একটি উদাহরণ (TFX)

এই উদাহরণটিতে colab নোটবুক প্রকাশ কিভাবে TensorFlow মডেল বিশ্লেষণ (TFMA) তদন্ত এবং একটি ডেটাসেটের বৈশিষ্ট্য এবং একটি মডেল কর্মক্ষমতা ঠাহর ব্যবহার করা যেতে পারে। আমরা যে আমরা পূর্বে প্রশিক্ষণপ্রাপ্ত একটি মডেল ব্যবহার করব, এবং এখন আপনি ফলাফল সাথে খেলতে পেতে!

মডেল আমরা প্রশিক্ষিত ছিল শিকাগো ট্যাক্সি উদাহরণ , যা ব্যবহার ট্যাক্সি ডেটা সেটটি Trips শিকাগো শহরের দ্বারা মুক্তি।

আরও পড়ুন মধ্যে ডেটা সেটটি সম্পর্কে Google BigQuery- তে । পূর্ণ ডেটা সেটটি এক্সপ্লোর BigQuery- তে UI 'তে

ডেটাসেটে কলাম আছেন:

pickup_community_area ভাড়া trip_start_month
trip_start_hour trip_start_day trip_start_timestamp
pickup_latitude pickup_longitude dropoff_latitude
dropoff_longitude trip_miles pickup_census_tract
dropoff_census_tract শোধের ধরণ প্রতিষ্ঠান
trip_seconds dropoff_community_area পরামর্শ

Jupyter এক্সটেনশনগুলি ইনস্টল করবেন

 jupyter nbextension enable --py widgetsnbextension
jupyter nbextension install --py --symlink tensorflow_model_analysis
jupyter nbextension enable --py tensorflow_model_analysis
 

ইনস্টল করুন TensorFlow মডেল বিশ্লেষণ (TFMA)

এই সব নির্ভরতা মধ্যে টান হবে, এবং এক মিনিট সময় নিতে হবে। সতর্কবার্তা উপেক্ষা করুন।

 import sys

# Confirm that we're using Python 3
assert sys.version_info.major is 3, 'Oops, not running Python 3. Use Runtime > Change runtime type'
 
 import tensorflow as tf
print('TF version: {}'.format(tf.__version__))

print('Installing Apache Beam')
!pip install -Uq apache_beam==2.17.0
import apache_beam as beam
print('Beam version: {}'.format(beam.__version__))

# Install TFMA
# This will pull in all the dependencies, and will take a minute
# Please ignore the warnings
!pip install -q tensorflow-model-analysis==0.21.3

import tensorflow as tf
import tensorflow_model_analysis as tfma
print('TFMA version: {}'.format(tfma.version.VERSION_STRING))
 
TF version: 2.2.0
Installing Apache Beam
Beam version: 2.17.0
ERROR: tfx-bsl 0.22.1 has requirement apache-beam[gcp]<3,>=2.20, but you'll have apache-beam 2.17.0 which is incompatible.
ERROR: tfx-bsl 0.22.1 has requirement pyarrow<0.17,>=0.16.0, but you'll have pyarrow 0.15.1 which is incompatible.
ERROR: tfx-bsl 0.22.1 has requirement tensorflow-metadata<0.23,>=0.22.2, but you'll have tensorflow-metadata 0.21.2 which is incompatible.

Error importing tfx_bsl_extension.coders. Some tfx_bsl functionalities are not available
TFMA version: 0.21.3

লোড দ্য ফাইল

আমরা যে সবকিছু আমরা প্রয়োজন একটি আলকাতরা ফাইল ডাউনলোড করব। এটি অন্তর্ভুক্ত:

  • প্রশিক্ষণ ও মূল্যায়ন ডেটাসেট
  • ডেটা স্কিমা
  • EvalSavedModels যেমন ফলাফল প্রশিক্ষণ
 # Download the tar file from GCP and extract it
import io, os, tempfile
BASE_DIR = tempfile.mkdtemp()
TFMA_DIR = os.path.join(BASE_DIR, 'eval_saved_models-0.15.0')
DATA_DIR = os.path.join(TFMA_DIR, 'data')
OUTPUT_DIR = os.path.join(TFMA_DIR, 'output')
SCHEMA = os.path.join(TFMA_DIR, 'schema.pbtxt')

!wget https://storage.googleapis.com/artifacts.tfx-oss-public.appspot.com/datasets/eval_saved_models-0.15.0.tar
!tar xf eval_saved_models-0.15.0.tar
!mv eval_saved_models-0.15.0 {BASE_DIR}
!rm eval_saved_models-0.15.0.tar

print("Here's what we downloaded:")
!ls -R {TFMA_DIR}
 
--2020-07-27 09:11:38--  https://storage.googleapis.com/artifacts.tfx-oss-public.appspot.com/datasets/eval_saved_models-0.15.0.tar
Resolving storage.googleapis.com (storage.googleapis.com)... 64.233.189.128, 108.177.97.128, 108.177.125.128, ...
Connecting to storage.googleapis.com (storage.googleapis.com)|64.233.189.128|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4311040 (4.1M) [application/x-tar]
Saving to: ‘eval_saved_models-0.15.0.tar’

eval_saved_models-0 100%[===================>]   4.11M  12.3MB/s    in 0.3s    

2020-07-27 09:11:39 (12.3 MB/s) - ‘eval_saved_models-0.15.0.tar’ saved [4311040/4311040]

Here's what we downloaded:
/tmp/tmpgq6r13oe/eval_saved_models-0.15.0:
data  run_0  run_1  run_2  schema.pbtxt

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/data:
eval  train

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/data/eval:
data.csv

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/data/train:
data.csv

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_0:
eval_model_dir

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_0/eval_model_dir:
1578507304

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_0/eval_model_dir/1578507304:
assets  saved_model.pb  variables

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_0/eval_model_dir/1578507304/assets:
vocab_compute_and_apply_vocabulary_1_vocabulary
vocab_compute_and_apply_vocabulary_vocabulary

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_0/eval_model_dir/1578507304/variables:
variables.data-00000-of-00001  variables.index

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_1:
eval_model_dir

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_1/eval_model_dir:
1578507304

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_1/eval_model_dir/1578507304:
assets  saved_model.pb  variables

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_1/eval_model_dir/1578507304/assets:
vocab_compute_and_apply_vocabulary_1_vocabulary
vocab_compute_and_apply_vocabulary_vocabulary

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_1/eval_model_dir/1578507304/variables:
variables.data-00000-of-00001  variables.index

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_2:
eval_model_dir

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_2/eval_model_dir:
1578507304

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_2/eval_model_dir/1578507304:
assets  saved_model.pb  variables

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_2/eval_model_dir/1578507304/assets:
vocab_compute_and_apply_vocabulary_1_vocabulary
vocab_compute_and_apply_vocabulary_vocabulary

/tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_2/eval_model_dir/1578507304/variables:
variables.data-00000-of-00001  variables.index

স্কিমা বিশ্লেষণ

জিনিস আমরা ডাউনলোড করা মধ্যে আমাদের তথ্য যে দ্বারা তৈরি করা হয়েছে একটি স্কিমা ছিল TensorFlow ডেটা ভ্যালিডেশন । আসুন পার্স যে এখন যাতে আমরা TFMA সঙ্গে এটি ব্যবহার করতে পারেন।

 from google.protobuf import text_format
from tensorflow.python.lib.io import file_io
from tensorflow_metadata.proto.v0 import schema_pb2
from tensorflow.core.example import example_pb2

schema = schema_pb2.Schema()
contents = file_io.read_file_to_string(SCHEMA)
schema = text_format.Parse(contents, schema)
 

স্কিমা ব্যবহার করুন TFRecords তৈরি করুন

আমরা তাই এর একটি TFRecords ফাইল তৈরি করা যাক আমাদের ডেটা সেটটি থেকে TFMA ভাবে অ্যাক্সেস দিতে। আমরা এটা তৈরি করতে, যেহেতু এটি আমাদের একে বৈশিষ্ট্যের জন্য সঠিক টাইপ দেয় আমাদের স্কিমা ব্যবহার করতে পারেন।

 import csv

datafile = os.path.join(DATA_DIR, 'eval', 'data.csv')
reader = csv.DictReader(open(datafile, 'r'))
examples = []
for line in reader:
  example = example_pb2.Example()
  for feature in schema.feature:
    key = feature.name
    if len(line[key]) > 0:
      if feature.type == schema_pb2.FLOAT:
        example.features.feature[key].float_list.value[:] = [float(line[key])]
      elif feature.type == schema_pb2.INT:
        example.features.feature[key].int64_list.value[:] = [int(line[key])]
      elif feature.type == schema_pb2.BYTES:
        example.features.feature[key].bytes_list.value[:] = [line[key].encode('utf8')]
    else:
      if feature.type == schema_pb2.FLOAT:
        example.features.feature[key].float_list.value[:] = []
      elif feature.type == schema_pb2.INT:
        example.features.feature[key].int64_list.value[:] = []
      elif feature.type == schema_pb2.BYTES:
        example.features.feature[key].bytes_list.value[:] = []
  examples.append(example)

TFRecord_file = os.path.join(BASE_DIR, 'train_data.rio')
with tf.io.TFRecordWriter(TFRecord_file) as writer:
  for example in examples:
    writer.write(example.SerializeToString())
  writer.flush()
  writer.close()

!ls {TFRecord_file}
 
/tmp/tmpgq6r13oe/train_data.rio

TFMA চালান এবং মেট্রিক্স রেন্ডার

এখন আমরা একটি ফাংশন যে আমরা TFMA চালানো এবং মেট্রিকস রেন্ডার করতে ব্যবহার করব তৈরি করতে প্রস্তুত। এটি একটি প্রয়োজন EvalSavedModel , একটি তালিকা SliceSpecs এবং SliceSpec তালিকায় একটি সূচক। এটা তোলে ব্যবহার করে একটি EvalResult তৈরি করবে tfma.run_model_analysis , এবং এটি ব্যবহার তৈরি করতে SlicingMetricsViewer ব্যবহার tfma.view.render_slicing_metrics , যা ফালি আমরা নির্মিত ব্যবহার করে আমাদের ডেটাসেটের একটি ঠাহর প্রতিদান দেবেন।

 def run_and_render(eval_model=None, slice_list=None, slice_idx=0):
  """Runs the model analysis and renders the slicing metrics

  Args:
      eval_model: An instance of tf.saved_model saved with evaluation data
      slice_list: A list of tfma.slicer.SingleSliceSpec giving the slices
      slice_idx: An integer index into slice_list specifying the slice to use

  Returns:
      A SlicingMetricsViewer object if in Jupyter notebook; None if in Colab.
  """
  eval_result = tfma.run_model_analysis(eval_shared_model=eval_model,
                                          data_location=TFRecord_file,
                                          file_format='tfrecords',
                                          slice_spec=slice_list,
                                          output_path='sample_data',
                                          extractors=None)
  return tfma.view.render_slicing_metrics(eval_result, slicing_spec=slice_list[slice_idx])
 

Slicing এবং Dicing

আমরা পূর্বে একটি মডেল প্রশিক্ষিত, এবং এখন আমরা ফলাফলগুলি লোড গেছেন। আসুন, আমাদের দৃশ্য কটাক্ষপাত করা বিশেষ বৈশিষ্ট্য বরাবর ছে করতে TFMA ব্যবহার থেকে শুরু। কিন্তু প্রথমে আমরা আমাদের আগের প্রশিক্ষণ রানে এক থেকে EvalSavedModel পড়া প্রয়োজন।

  • ফালি আপনি একটি তৈরি ঠাহর করতে চান নির্ধারণ করতে tfma.slicer.SingleSliceSpec

  • ব্যবহার করার জন্য tfma.view.render_slicing_metrics আপনি হয় (সেটিং দ্বারা কলামের নাম ব্যবহার করতে পারেন slicing_column ) অথবা একটি প্রদান tfma.slicer.SingleSliceSpec (সেটিং দ্বারা slicing_spec )

  • তাহলে তন্ন তন্ন প্রদান করা হয়, ওভারভিউ প্রদর্শন করা হবে

প্লট ইন্টারেক্টিভ আছেন:

  • ক্লিক করে টেনে আনুন প্যান
  • স্ক্রোল করতে জুম
  • সঠিক দৃষ্টিভঙ্গি পুনরায় সেট করতে ক্লিক

কেবলমাত্র হোভার আকাঙ্ক্ষিত ডাটা পয়েন্ট উপর আরো বিস্তারিত দেখতে। নীচে পছন্দসই মান নির্বাচন করে ব্যবহার প্লট চারটি ভিন্ন ধরনের থেকে নির্বাচন করুন।

উদাহরণস্বরূপ, আমরা সেটিং করা হবে slicing_column তাকান trip_start_hour আমাদের বৈশিষ্ট্য SliceSpec

 # Load the TFMA results for the first training run
# This will take a minute
eval_model_base_dir_0 = os.path.join(TFMA_DIR, 'run_0', 'eval_model_dir')
eval_model_dir_0 = os.path.join(eval_model_base_dir_0, next(os.walk(eval_model_base_dir_0))[1][0])
eval_shared_model_0 = tfma.default_eval_shared_model(eval_saved_model_path=eval_model_dir_0)

# Slice our data by the trip_start_hour feature
slices = [tfma.slicer.SingleSliceSpec(columns=['trip_start_hour'])]

run_and_render(eval_model=eval_shared_model_0, slice_list=slices, slice_idx=0)
 
WARNING:tensorflow:Tensorflow version (2.2.0) found. Note that TFMA support for TF 2.0 is currently in beta
WARNING:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow_model_analysis/eval_saved_model/load.py:169: load (from tensorflow.python.saved_model.loader_impl) is deprecated and will be removed in a future version.
Instructions for updating:
This function will only be available through the v1 compatibility library as tf.compat.v1.saved_model.loader.load or tf.compat.v1.saved_model.load. There will be a new function for importing SavedModels in Tensorflow 2.0.

Warning:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow_model_analysis/eval_saved_model/load.py:169: load (from tensorflow.python.saved_model.loader_impl) is deprecated and will be removed in a future version.
Instructions for updating:
This function will only be available through the v1 compatibility library as tf.compat.v1.saved_model.loader.load or tf.compat.v1.saved_model.load. There will be a new function for importing SavedModels in Tensorflow 2.0.

INFO:tensorflow:Restoring parameters from /tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_0/eval_model_dir/1578507304/variables/variables

INFO:tensorflow:Restoring parameters from /tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_0/eval_model_dir/1578507304/variables/variables

Warning:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow_model_analysis/eval_saved_model/graph_ref.py:189: get_tensor_from_tensor_info (from tensorflow.python.saved_model.utils_impl) is deprecated and will be removed in a future version.
Instructions for updating:
This function will only be available through the v1 compatibility library as tf.compat.v1.saved_model.utils.get_tensor_from_tensor_info or tf.compat.v1.saved_model.get_tensor_from_tensor_info.

Warning:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow_model_analysis/eval_saved_model/graph_ref.py:189: get_tensor_from_tensor_info (from tensorflow.python.saved_model.utils_impl) is deprecated and will be removed in a future version.
Instructions for updating:
This function will only be available through the v1 compatibility library as tf.compat.v1.saved_model.utils.get_tensor_from_tensor_info or tf.compat.v1.saved_model.get_tensor_from_tensor_info.

Warning:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow/python/ops/resource_variable_ops.py:1666: calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.
Instructions for updating:
If using Keras pass *_constraint arguments to layers.

Warning:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow/python/ops/resource_variable_ops.py:1666: calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.
Instructions for updating:
If using Keras pass *_constraint arguments to layers.
WARNING:root:Couldn't find python-snappy so the implementation of _TFRecordUtil._masked_crc32c is not as fast as it could be.

Warning:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow_model_analysis/writers/metrics_and_plots_serialization.py:125: tf_record_iterator (from tensorflow.python.lib.io.tf_record) is deprecated and will be removed in a future version.
Instructions for updating:
Use eager execution and: 
`tf.data.TFRecordDataset(path)`

Warning:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow_model_analysis/writers/metrics_and_plots_serialization.py:125: tf_record_iterator (from tensorflow.python.lib.io.tf_record) is deprecated and will be removed in a future version.
Instructions for updating:
Use eager execution and: 
`tf.data.TFRecordDataset(path)`

SlicingMetricsViewer(config={'weightedExamplesColumn': 'post_export_metrics/example_count'}, data=[{'slice': '…

স্লাইস সংক্ষিপ্ত বিবরণ

যখন টুকরা সংখ্যা ছোট ডিফল্ট ঠাহর স্লাইস সংক্ষিপ্ত বিবরণ নেই। এটা প্রতিটি ফালি জন্য মেট্রিক্স মান দেখায়। যেহেতু আমরা নির্বাচন করেছেন trip_start_hour উপরে, এটা আমাদের সঠিকতা এবং AUC প্রতি ঘন্টায়, যা আমাদের সমস্যা যে কিছু ঘন্টা এবং না অন্যদের কাছে নির্দিষ্ট জন্য চেহারা করতে পারবেন মত বৈশিষ্ট্যের মান দেখাচ্ছে।

উপরে ঠাহর ইন:

  • বৈশিষ্ট্য কলাম, যা আমাদের নেই বাছাই করার চেষ্টা করুন trip_start_hours কলাম শিরোনাম উপর, বৈশিষ্ট্য ক্লিক করে
  • স্পষ্টতা দ্বারা বাছাই চেষ্টা করুন এবং যে বিজ্ঞপ্তি উদাহরণ ঘন্টার কিছু স্পষ্টতা 0 একটি সমস্যা ইঙ্গিত হতে পারে যা

চার্ট আমাদের নির্বাচন করুন ও আমাদের টুকরা বিভিন্ন বৈশিষ্ট্যের মান প্রদর্শন করতে পারবেন।

  • "দেখান" মেনু থেকে আলাদা বৈশিষ্ট্যের মান নির্বাচনের চেষ্টা করুন
  • "দেখান" মেনুতে রিকল নির্বাচনের চেষ্টা করুন, এবং বিজ্ঞপ্তি উদাহরণ ঘন্টার কিছু রিকল 0, যা সমস্যার ইঙ্গিত দিতে পারে যে

এছাড়া উদাহরণ ছোট সংখ্যা, অথবা "ওজন" সঙ্গে টুকরা ফিল্টার করার জন্য একটি প্রান্তিক সেট করা সম্ভব। আপনি উদাহরণ কমপক্ষে সংখ্যা টাইপ করুন, বা স্লাইডার ব্যবহার করতে পারেন।

মেট্রিক্স হিস্টোগ্রাম

এই দেখুন এছাড়াও একটি বিকল্প কল্পনা, যা ডিফল্ট ভিউ যখন টুকরা সংখ্যা বড় হিসাবে একটি মেট্রিক্স হিস্টোগ্রাম সমর্থন করে। ফলাফল বাকেট বিভক্ত করা হবে এবং টুকরা / মোট ওজন সংখ্যা / উভয় ভিজ্যুয়ালাইজ করা যেতে পারে। কলাম কলাম শিরোনাম এ ক্লিক করে সাজানো যেতে পারে। ছোট ওজন সঙ্গে স্লাইস থ্রেশহোল্ড সেটিং দ্বারা ফিল্টার করা যেতে পারে। আরও ফিল্টারিং ধূসর ব্যান্ড টেনে এনে প্রয়োগ করা যায়। পরিসর পুনরায় সেট করতে, ডবল ব্যান্ড ক্লিক করুন। ফিল্টারিং এছাড়াও ঠাহর মধ্যে outliers এবং মেট্রিকস টেবিল মুছে ফেলার জন্য ব্যবহার করা যাবে। পরিবর্তে একটি লগারিদমিক স্কেল একটি রৈখিক স্কেল পরিবর্তন করতে গিয়ার আইকনে ক্লিক করুন।

  • ভিজুয়ালাইজেশান মেনুতে "মেট্রিক্স হিস্টোগ্রাম" নির্বাচনের চেষ্টা করুন

আরো স্লাইস

এর একটি সম্পূর্ণ তালিকা তৈরি করা যাক SliceSpec গুলি, যা আমাদের তালিকায় টুকরা কোনো নির্বাচন করার অনুমতি দেবে। আমরা নির্বাচন করব trip_start_day সেটিং দ্বারা ফালি (সপ্তাহের দিন) slice_idx করতে 1পরিবর্তন করার চেষ্টা করুন slice_idx করতে 0 বা 2 এবং বিভিন্ন টুকরা পরীক্ষা করা আবার চলমান।

 slices = [tfma.slicer.SingleSliceSpec(columns=['trip_start_hour']),
          tfma.slicer.SingleSliceSpec(columns=['trip_start_day']),
          tfma.slicer.SingleSliceSpec(columns=['trip_start_month'])]
run_and_render(eval_model=eval_shared_model_0, slice_list=slices, slice_idx=1)
 
WARNING:tensorflow:Tensorflow version (2.2.0) found. Note that TFMA support for TF 2.0 is currently in beta

Warning:tensorflow:Tensorflow version (2.2.0) found. Note that TFMA support for TF 2.0 is currently in beta
WARNING:root:Deleting 1 existing files in target path matching: 
WARNING:root:Deleting 1 existing files in target path matching: 
WARNING:root:Deleting 1 existing files in target path matching: 

SlicingMetricsViewer(config={'weightedExamplesColumn': 'post_export_metrics/example_count'}, data=[{'slice': '…

আপনি বৈশিষ্ট্য সমন্বয় বিশ্লেষণ বৈশিষ্ট্য ক্রস তৈরি করতে পারেন। আসুন একটি তৈরি SliceSpec একটি ক্রস তাকান trip_start_day এবং trip_start_hour :

 slices = [tfma.slicer.SingleSliceSpec(columns=['trip_start_day', 'trip_start_hour'])]
run_and_render(eval_shared_model_0, slices, 0)
 
WARNING:tensorflow:Tensorflow version (2.2.0) found. Note that TFMA support for TF 2.0 is currently in beta

Warning:tensorflow:Tensorflow version (2.2.0) found. Note that TFMA support for TF 2.0 is currently in beta
WARNING:root:Deleting 1 existing files in target path matching: 
WARNING:root:Deleting 1 existing files in target path matching: 
WARNING:root:Deleting 1 existing files in target path matching: 

SlicingMetricsViewer(config={'weightedExamplesColumn': 'post_export_metrics/example_count'}, data=[{'slice': '…

দুটি কলাম উত্তরণ সমন্বয় অনেকটা সৃষ্টি! আসুন ভ্রমণের যে দুপুরে শুরুতে শুধুমাত্র চেহারায় আমাদের ক্রস আকার কমিয়ে আনতে। তারপর এর নির্বাচনে সহায়তা করে accuracy কল্পনা থেকে:

 slices = [tfma.slicer.SingleSliceSpec(columns=['trip_start_day'], features=[('trip_start_hour', 12)])]
run_and_render(eval_shared_model_0, slices, 0)
 
WARNING:tensorflow:Tensorflow version (2.2.0) found. Note that TFMA support for TF 2.0 is currently in beta

Warning:tensorflow:Tensorflow version (2.2.0) found. Note that TFMA support for TF 2.0 is currently in beta
WARNING:root:Deleting 1 existing files in target path matching: 
WARNING:root:Deleting 1 existing files in target path matching: 
WARNING:root:Deleting 1 existing files in target path matching: 

SlicingMetricsViewer(config={'weightedExamplesColumn': 'post_export_metrics/example_count'}, data=[{'slice': '…

ট্র্যাকিং মডেল পারফরমেন্স ওভার টাইম

তোমার প্রশিক্ষণ ডেটা সেটটি আপনার মডেল প্রশিক্ষণ জন্য ব্যবহার করা হবে, এবং আশা আপনার পরীক্ষার ডেটা সেটটি এবং ডেটা উৎপাদনে আপনার মডেল পাঠানো হবে প্রতিনিধি থাকবে। যাইহোক, যখন অনুমান অনুরোধগুলিতে ডেটা আপনার প্রশিক্ষণ ডাটা হিসাবে একই থাকতে পারে, অনেক ক্ষেত্রে এটা যথেষ্ট যাতে আপনার মডেল কর্মক্ষমতা পরিবর্তন করতে হবে তা পরিবর্তন করতে শুরু হবে।

তার মানে কি, নিরীক্ষণ ও একটি চলমান ভিত্তিতে আপনার মডেল এর পারফরম্যান্স পরিমাপ প্রয়োজন যে, যাতে আপনি সচেতন হতে এবং পরিবর্তন প্রতিক্রিয়া পারবেন না। আসুন দেখি TFMA সাহায্য করতে পারেন কটাক্ষপাত করা।

পরিমাপ অভিনয়ের জন্য নতুন তথ্য

আমরা উপরে তিনটি ভিন্ন প্রশিক্ষণ রানের ফলাফল ডাউনলোড করা, তাই এর লোড এখন তাদের দিন এবং কীভাবে তারা ব্যবহার তুলনা দেখতে TFMA ব্যবহার render_time_series । আমরা বিশেষ টুকরা তাকান নির্দিষ্ট করতে পারেন। এর ভ্রমণের যে দুপুরে শুরু আমাদের প্রশিক্ষণ রান তুলনা করা যাক।

  • যে মেট্রিক জন্য সময় সিরিজ গ্রাফ যোগ করার জন্য ড্রপডাউন থেকে একটি মেট্রিক নির্বাচন করুন
  • বন্ধ অবাঞ্ছিত গ্রাফ
  • ডাটা পয়েন্টের উপর কার্সার রেখে (গ্রাফ লাইন ভাগের সমাপ্তিতে) আরো বিবরণ পেতে
 def get_eval_result(base_dir, output_dir, data_loc, slice_spec):
  eval_model_dir = os.path.join(base_dir, next(os.walk(base_dir))[1][0])
  eval_shared_model = tfma.default_eval_shared_model(eval_saved_model_path=eval_model_dir)

  return tfma.run_model_analysis(eval_shared_model=eval_shared_model,
                                          data_location=data_loc,
                                          file_format='tfrecords',
                                          slice_spec=slice_spec,
                                          output_path=output_dir,
                                          extractors=None)

slices = [tfma.slicer.SingleSliceSpec()]
output_dir_0 = os.path.join(TFMA_DIR, 'output', 'run_0')
result_ts0 = get_eval_result(os.path.join(TFMA_DIR, 'run_0', 'eval_model_dir'),
                             output_dir_0, TFRecord_file, slices)
output_dir_1 = os.path.join(TFMA_DIR, 'output', 'run_1')
result_ts1 = get_eval_result(os.path.join(TFMA_DIR, 'run_1', 'eval_model_dir'),
                             output_dir_1, TFRecord_file, slices)
output_dir_2 = os.path.join(TFMA_DIR, 'output', 'run_2')
result_ts2 = get_eval_result(os.path.join(TFMA_DIR, 'run_2', 'eval_model_dir'),
                             output_dir_2, TFRecord_file, slices)
 
WARNING:tensorflow:Tensorflow version (2.2.0) found. Note that TFMA support for TF 2.0 is currently in beta

Warning:tensorflow:Tensorflow version (2.2.0) found. Note that TFMA support for TF 2.0 is currently in beta

INFO:tensorflow:Restoring parameters from /tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_0/eval_model_dir/1578507304/variables/variables

INFO:tensorflow:Restoring parameters from /tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_0/eval_model_dir/1578507304/variables/variables

Warning:tensorflow:Tensorflow version (2.2.0) found. Note that TFMA support for TF 2.0 is currently in beta

Warning:tensorflow:Tensorflow version (2.2.0) found. Note that TFMA support for TF 2.0 is currently in beta

INFO:tensorflow:Restoring parameters from /tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_1/eval_model_dir/1578507304/variables/variables

INFO:tensorflow:Restoring parameters from /tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_1/eval_model_dir/1578507304/variables/variables

Warning:tensorflow:Tensorflow version (2.2.0) found. Note that TFMA support for TF 2.0 is currently in beta

Warning:tensorflow:Tensorflow version (2.2.0) found. Note that TFMA support for TF 2.0 is currently in beta

INFO:tensorflow:Restoring parameters from /tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_2/eval_model_dir/1578507304/variables/variables

INFO:tensorflow:Restoring parameters from /tmp/tmpgq6r13oe/eval_saved_models-0.15.0/run_2/eval_model_dir/1578507304/variables/variables

আজ কেমন হতে পারে?

প্রথমত, আমরা কল্পনা করব যে আমরা প্রশিক্ষণ ও মোতায়েন করেছি আমাদের মডেল গতকাল, এবং এখন আমরা দেখতে এটি আজ আসছে নতুন তথ্য উপর করছে চাই। কল্পনা সঠিকতা প্রদর্শনের মাধ্যমে শুরু হবে। AUC এবং গড় ক্ষতির "মেট্রিক সিরিজ যোগ করুন" মেনু ব্যবহার করে যুক্ত করো।

 eval_results_from_disk = tfma.load_eval_results([output_dir_0, output_dir_1],
                                                tfma.constants.MODEL_CENTRIC_MODE)

tfma.view.render_time_series(eval_results_from_disk, slices[0])
 
TimeSeriesViewer(config={'isModelCentric': True}, data=[{'metrics': {'': {'': {'precision': {'doubleValue': 0.…

এখন আমরা কল্পনা করব যে অন্য দিনের অতিবাহিত হয়েছে এবং আমরা দেখতে কিভাবে এটি আগের দুই দিনের তুলনায় আজ আসছে নতুন তথ্য উপর করছে, চাই। আবার "মেট্রিক সিরিজ যোগ করুন" মেনু ব্যবহার করে AUC এবং গড় ক্ষতির যোগ করুন:

 eval_results_from_disk = tfma.load_eval_results([output_dir_0, output_dir_1, output_dir_2],
                                                tfma.constants.MODEL_CENTRIC_MODE)

tfma.view.render_time_series(eval_results_from_disk, slices[0])
 
TimeSeriesViewer(config={'isModelCentric': True}, data=[{'metrics': {'': {'': {'label/mean': {'doubleValue': 0…