TensorFlow.org पर देखें | Google Colab में चलाएं | GitHub पर स्रोत देखें | नोटबुक डाउनलोड करें |
यह मार्गदर्शिका दर्शाती है कि टीपीयू पर चल रहे अपने वर्कफ़्लोज़ को TensorFlow 1 के TPUEstimator
API से TensorFlow 2 के TPUStrategy
API में माइग्रेट कैसे करें।
- TensorFlow 1 में,
tf.compat.v1.estimator.tpu.TPUEstimator
API आपको एक मॉडल को प्रशिक्षित और मूल्यांकन करने देता है, साथ ही साथ (क्लाउड) TPU पर अपने मॉडल (सेवा के लिए) का अनुमान लगाने और सहेजने देता है। - TensorFlow 2 में, TPU और TPU पॉड्स (समर्पित हाई-स्पीड नेटवर्क इंटरफेस से जुड़े TPU उपकरणों का एक संग्रह) पर सिंक्रोनस प्रशिक्षण करने के लिए, आपको एक TPU वितरण रणनीति-
tf.distribute.TPUStrategy
रणनीति का उपयोग करने की आवश्यकता है। मॉडल निर्माण (tf.keras.Model
), ऑप्टिमाइज़र (tf.keras.optimizers.Optimizer
), और प्रशिक्षण (Model.fit
) के साथ-साथ एक कस्टम प्रशिक्षण लूप (tf.function
के साथ) के लिए रणनीति Keras API के साथ काम कर सकती है।tf.function
औरtf.GradientTape
)।
एंड-टू-एंड TensorFlow 2 उदाहरणों के लिए, TPU का उपयोग करें मार्गदर्शिका देखें—अर्थात्, TPU अनुभाग पर वर्गीकरण —और TPU ट्यूटोरियल पर BERT का उपयोग करके GLUE कार्यों को हल करें। आपको वितरित प्रशिक्षण मार्गदर्शिका भी उपयोगी लग सकती है, जिसमें TPUStrategy
सहित सभी TensorFlow वितरण रणनीतियों को शामिल किया गया है।
सेट अप
प्रदर्शन उद्देश्यों के लिए आयात और एक साधारण डेटासेट से शुरू करें:
import tensorflow as tf
import tensorflow.compat.v1 as tf1
/tmpfs/src/tf_docs_env/lib/python3.6/site-packages/requests/__init__.py:104: RequestsDependencyWarning: urllib3 (1.26.8) or chardet (2.3.0)/charset_normalizer (2.0.11) doesn't match a supported version! RequestsDependencyWarning)
features = [[1., 1.5]]
labels = [[0.3]]
eval_features = [[4., 4.5]]
eval_labels = [[0.8]]
TensorFlow 1: TPUEestimator के साथ TPU पर एक मॉडल चलाएं
गाइड का यह भाग दर्शाता है कि TensorFlow 1 में tf.compat.v1.estimator.tpu.TPUEstimator
के साथ प्रशिक्षण और मूल्यांकन कैसे करें।
एक TPUEstimator
का उपयोग करने के लिए, पहले कुछ कार्यों को परिभाषित करें: प्रशिक्षण डेटा के लिए एक इनपुट फ़ंक्शन, मूल्यांकन डेटा के लिए एक मूल्यांकन इनपुट फ़ंक्शन, और एक मॉडल फ़ंक्शन जो TPUEstimator
को बताता है कि प्रशिक्षण सेशन को सुविधाओं और लेबल के साथ कैसे परिभाषित किया जाता है:
def _input_fn(params):
dataset = tf1.data.Dataset.from_tensor_slices((features, labels))
dataset = dataset.repeat()
return dataset.batch(params['batch_size'], drop_remainder=True)
def _eval_input_fn(params):
dataset = tf1.data.Dataset.from_tensor_slices((eval_features, eval_labels))
dataset = dataset.repeat()
return dataset.batch(params['batch_size'], drop_remainder=True)
def _model_fn(features, labels, mode, params):
logits = tf1.layers.Dense(1)(features)
loss = tf1.losses.mean_squared_error(labels=labels, predictions=logits)
optimizer = tf1.train.AdagradOptimizer(0.05)
train_op = optimizer.minimize(loss, global_step=tf1.train.get_global_step())
return tf1.estimator.tpu.TPUEstimatorSpec(mode, loss=loss, train_op=train_op)
परिभाषित उन कार्यों के साथ, एक tf.distribute.cluster_resolver.TPUClusterResolver
बनाएं जो क्लस्टर जानकारी प्रदान करता है, और एक tf.compat.v1.estimator.tpu.RunConfig
ऑब्जेक्ट। आपके द्वारा परिभाषित मॉडल फ़ंक्शन के साथ, अब आप एक TPUEstimator
बना सकते हैं। यहां, आप चेकपॉइंट बचत को छोड़ कर प्रवाह को सरल बनाएंगे। फिर, आप TPUEstimator
के प्रशिक्षण और मूल्यांकन दोनों के लिए बैच आकार निर्दिष्ट करेंगे।
cluster_resolver = tf1.distribute.cluster_resolver.TPUClusterResolver(tpu='')
print("All devices: ", tf1.config.list_logical_devices('TPU'))
All devices: []
tpu_config = tf1.estimator.tpu.TPUConfig(iterations_per_loop=10)
config = tf1.estimator.tpu.RunConfig(
cluster=cluster_resolver,
save_checkpoints_steps=None,
tpu_config=tpu_config)
estimator = tf1.estimator.tpu.TPUEstimator(
model_fn=_model_fn,
config=config,
train_batch_size=8,
eval_batch_size=8)
WARNING:tensorflow:Estimator's model_fn (<function _model_fn at 0x7fef73ae76a8>) includes params argument, but params are not passed to Estimator. WARNING:tensorflow:Using temporary folder as model directory: /tmp/tmp_bkua7zf INFO:tensorflow:Using config: {'_model_dir': '/tmp/tmp_bkua7zf', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': None, '_session_config': allow_soft_placement: true cluster_def { job { name: "worker" tasks { key: 0 value: "10.240.1.2:8470" } } } isolate_session_state: true , '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': None, '_train_distribute': None, '_device_fn': None, '_protocol': None, '_eval_distribute': None, '_experimental_distribute': None, '_experimental_max_worker_delay_secs': None, '_session_creation_timeout_secs': 7200, '_checkpoint_save_graph_def': True, '_service': None, '_cluster_spec': ClusterSpec({'worker': ['10.240.1.2:8470']}), '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': 'grpc://10.240.1.2:8470', '_evaluation_master': 'grpc://10.240.1.2:8470', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1, '_tpu_config': TPUConfig(iterations_per_loop=10, num_shards=None, num_cores_per_replica=None, per_host_input_for_training=2, tpu_job_name=None, initial_infeed_sleep_secs=None, input_partition_dims=None, eval_training_input_configuration=2, experimental_host_call_every_n_steps=1, experimental_allow_per_host_v2_parallel_get_next=False, experimental_feed_hook=None), '_cluster': <tensorflow.python.distribute.cluster_resolver.tpu.tpu_cluster_resolver.TPUClusterResolver object at 0x7ff288b6aa20>} INFO:tensorflow:_TPUContext: eval_on_tpu True
मॉडल का प्रशिक्षण शुरू करने के लिए TPUEstimator.train
पर कॉल करें:
estimator.train(_input_fn, steps=1)
INFO:tensorflow:Querying Tensorflow master (grpc://10.240.1.2:8470) for TPU system metadata. INFO:tensorflow:Found TPU system: INFO:tensorflow:*** Num TPU Cores: 8 INFO:tensorflow:*** Num TPU Workers: 1 INFO:tensorflow:*** Num TPU Cores Per Worker: 8 INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:CPU:0, CPU, -1, 2562214468325910549) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:0, TPU, 17179869184, 7806191887455116208) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:1, TPU, 17179869184, 4935096526614797404) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:2, TPU, 17179869184, 6208852770722846295) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:3, TPU, 17179869184, -4484747666522931072) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:4, TPU, 17179869184, -8715412538518264422) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:5, TPU, 17179869184, -3521027846460785533) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:6, TPU, 17179869184, -6534172152637582552) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:7, TPU, 17179869184, 4735861352635655596) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU_SYSTEM:0, TPU_SYSTEM, 17179869184, -411508280321075475) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:XLA_CPU:0, XLA_CPU, 17179869184, 2431932884271560631) WARNING:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow/python/training/training_util.py:236: Variable.initialized_value (from tensorflow.python.ops.variables) is deprecated and will be removed in a future version. Instructions for updating: Use Variable.read_value. Variables in 2.X are initialized automatically both in eager and graph (inside tf.defun) contexts. INFO:tensorflow:Calling model_fn. WARNING:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow/python/training/adagrad.py:77: calling Constant.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version. Instructions for updating: Call initializer instance with the dtype argument instead of passing it to the constructor INFO:tensorflow:Bypassing TPUEstimator hook INFO:tensorflow:Done calling model_fn. INFO:tensorflow:TPU job name worker INFO:tensorflow:Graph was finalized. INFO:tensorflow:Running local_init_op. INFO:tensorflow:Done running local_init_op. WARNING:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/tpu/tpu_estimator.py:758: Variable.load (from tensorflow.python.ops.variables) is deprecated and will be removed in a future version. Instructions for updating: Prefer Variable.assign which has equivalent behavior in 2.X. INFO:tensorflow:Initialized dataset iterators in 0 seconds INFO:tensorflow:Installing graceful shutdown hook. INFO:tensorflow:Creating heartbeat manager for ['/job:worker/replica:0/task:0/device:CPU:0'] INFO:tensorflow:Configuring worker heartbeat: shutdown_mode: WAIT_FOR_COORDINATOR INFO:tensorflow:Init TPU system INFO:tensorflow:Initialized TPU in 7 seconds INFO:tensorflow:Starting infeed thread controller. INFO:tensorflow:Starting outfeed thread controller. INFO:tensorflow:Enqueue next (1) batch(es) of data to infeed. INFO:tensorflow:Dequeue next (1) batch(es) of data from outfeed. INFO:tensorflow:Outfeed finished for iteration (0, 0) INFO:tensorflow:loss = 4.462118, step = 1 INFO:tensorflow:Stop infeed thread controller INFO:tensorflow:Shutting down InfeedController thread. INFO:tensorflow:InfeedController received shutdown signal, stopping. INFO:tensorflow:Infeed thread finished, shutting down. INFO:tensorflow:infeed marked as finished INFO:tensorflow:Stop output thread controller INFO:tensorflow:Shutting down OutfeedController thread. INFO:tensorflow:OutfeedController received shutdown signal, stopping. INFO:tensorflow:Outfeed thread finished, shutting down. INFO:tensorflow:outfeed marked as finished INFO:tensorflow:Shutdown TPU system. INFO:tensorflow:Loss for final step: 4.462118. INFO:tensorflow:training_loop marked as finished <tensorflow_estimator.python.estimator.tpu.tpu_estimator.TPUEstimator at 0x7fec59ef9d68>
फिर, मूल्यांकन डेटा का उपयोग करके मॉडल का मूल्यांकन करने के लिए TPUEstimator.evaluate
पर कॉल करें:
estimator.evaluate(_eval_input_fn, steps=1)
INFO:tensorflow:Could not find trained model in model_dir: /tmp/tmp_bkua7zf, running initialization to evaluate. INFO:tensorflow:Calling model_fn. WARNING:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/tpu/tpu_estimator.py:3406: div (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. Instructions for updating: Deprecated in favor of operator or tf.math.divide. INFO:tensorflow:Done calling model_fn. INFO:tensorflow:Starting evaluation at 2022-02-05T13:15:25 INFO:tensorflow:TPU job name worker INFO:tensorflow:Graph was finalized. INFO:tensorflow:Running local_init_op. INFO:tensorflow:Done running local_init_op. INFO:tensorflow:Init TPU system INFO:tensorflow:Initialized TPU in 10 seconds INFO:tensorflow:Starting infeed thread controller. INFO:tensorflow:Starting outfeed thread controller. INFO:tensorflow:Initialized dataset iterators in 0 seconds INFO:tensorflow:Enqueue next (1) batch(es) of data to infeed. INFO:tensorflow:Dequeue next (1) batch(es) of data from outfeed. INFO:tensorflow:Outfeed finished for iteration (0, 0) INFO:tensorflow:Evaluation [1/1] INFO:tensorflow:Stop infeed thread controller INFO:tensorflow:Shutting down InfeedController thread. INFO:tensorflow:InfeedController received shutdown signal, stopping. INFO:tensorflow:Infeed thread finished, shutting down. INFO:tensorflow:infeed marked as finished INFO:tensorflow:Stop output thread controller INFO:tensorflow:Shutting down OutfeedController thread. INFO:tensorflow:OutfeedController received shutdown signal, stopping. INFO:tensorflow:Outfeed thread finished, shutting down. INFO:tensorflow:outfeed marked as finished INFO:tensorflow:Shutdown TPU system. INFO:tensorflow:Inference Time : 10.80091s INFO:tensorflow:Finished evaluation at 2022-02-05-13:15:36 INFO:tensorflow:Saving dict for global step 1: global_step = 1, loss = 116.58184 INFO:tensorflow:evaluation_loop marked as finished {'loss': 116.58184, 'global_step': 1}
TensorFlow 2: Keras Model.fit और TPStrategy के साथ TPU पर एक मॉडल चलाएं
TensorFlow 2 में, TPU कार्यकर्ताओं को प्रशिक्षित करने के लिए, मॉडल परिभाषा और प्रशिक्षण/मूल्यांकन के लिए Keras API के साथ tf.distribute.TPUStrategy
का उपयोग करें। ( Model.fit
और एक कस्टम ट्रेनिंग लूप ( tf.function
और tf.GradientTape
के साथ) के साथ प्रशिक्षण के अधिक उदाहरणों के लिए उपयोग TPU गाइड देखें।)
चूंकि आपको दूरस्थ क्लस्टर से कनेक्ट करने और TPU कार्यकर्ताओं को प्रारंभ करने के लिए कुछ आरंभीकरण कार्य करने की आवश्यकता है, क्लस्टर जानकारी प्रदान करने और क्लस्टर से कनेक्ट करने के लिए TPUClusterResolver
बनाकर प्रारंभ करें। ( इस्तेमाल करें टीपीयू गाइड के टीपीयू इनिशियलाइज़ेशन सेक्शन में और जानें।)
cluster_resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='')
tf.config.experimental_connect_to_cluster(cluster_resolver)
tf.tpu.experimental.initialize_tpu_system(cluster_resolver)
print("All devices: ", tf.config.list_logical_devices('TPU'))
INFO:tensorflow:Clearing out eager caches INFO:tensorflow:Clearing out eager caches INFO:tensorflow:Initializing the TPU system: grpc://10.240.1.2:8470 INFO:tensorflow:Initializing the TPU system: grpc://10.240.1.2:8470 INFO:tensorflow:Finished initializing TPU system. INFO:tensorflow:Finished initializing TPU system. All devices: [LogicalDevice(name='/job:worker/replica:0/task:0/device:TPU:0', device_type='TPU'), LogicalDevice(name='/job:worker/replica:0/task:0/device:TPU:1', device_type='TPU'), LogicalDevice(name='/job:worker/replica:0/task:0/device:TPU:2', device_type='TPU'), LogicalDevice(name='/job:worker/replica:0/task:0/device:TPU:3', device_type='TPU'), LogicalDevice(name='/job:worker/replica:0/task:0/device:TPU:4', device_type='TPU'), LogicalDevice(name='/job:worker/replica:0/task:0/device:TPU:5', device_type='TPU'), LogicalDevice(name='/job:worker/replica:0/task:0/device:TPU:6', device_type='TPU'), LogicalDevice(name='/job:worker/replica:0/task:0/device:TPU:7', device_type='TPU')]
अगला, एक बार आपका डेटा तैयार हो जाने के बाद, आप इस रणनीति के दायरे में एक TPUStrategy
, एक मॉडल, मेट्रिक्स और एक ऑप्टिमाइज़र को परिभाषित करेंगे।
TPUStrategy
के साथ तुलनीय प्रशिक्षण गति प्राप्त करने के लिए, आपको steps_per_execution
में Model.compile
के लिए एक नंबर चुनना सुनिश्चित करना चाहिए क्योंकि यह प्रत्येक tf.function
कॉल के दौरान चलाने के लिए बैचों की संख्या निर्दिष्ट करता है, और प्रदर्शन के लिए महत्वपूर्ण है। यह तर्क एक TPUEstimator
में उपयोग किए जाने वाले iterations_per_loop
के समान है। यदि आप कस्टम प्रशिक्षण लूप का उपयोग कर रहे हैं, तो आपको यह सुनिश्चित करना चाहिए कि tf.function
-ed प्रशिक्षण फ़ंक्शन के भीतर कई चरण चल रहे हैं। अधिक जानकारी के लिए उपयोग टीपीयू गाइड के tf.function अनुभाग के अंदर कई चरणों के साथ प्रदर्शन में सुधार पर जाएं।
tf.distribute.TPUStrategy
बाध्य गतिशील आकृतियों का समर्थन कर सकती है, यही स्थिति है कि गतिशील आकार गणना की ऊपरी सीमा का अनुमान लगाया जा सकता है। लेकिन गतिशील आकार स्थिर आकार की तुलना में कुछ प्रदर्शन ओवरहेड पेश कर सकते हैं। इसलिए, आमतौर पर यह अनुशंसा की जाती है कि यदि संभव हो तो अपने इनपुट आकार को स्थिर बनाएं, खासकर प्रशिक्षण में। एक सामान्य ऑप जो एक गतिशील आकार देता है वह है tf.data.Dataset.batch(batch_size)
, क्योंकि एक स्ट्रीम में शेष नमूनों की संख्या बैच आकार से कम हो सकती है। इसलिए, जब टीपीयू पर प्रशिक्षण दिया जाता है, तो आपको सर्वोत्तम प्रशिक्षण प्रदर्शन के लिए tf.data.Dataset.batch(..., drop_remainder=True)
का उपयोग करना चाहिए।
dataset = tf.data.Dataset.from_tensor_slices(
(features, labels)).shuffle(10).repeat().batch(
8, drop_remainder=True).prefetch(2)
eval_dataset = tf.data.Dataset.from_tensor_slices(
(eval_features, eval_labels)).batch(1, drop_remainder=True)
strategy = tf.distribute.TPUStrategy(cluster_resolver)
with strategy.scope():
model = tf.keras.models.Sequential([tf.keras.layers.Dense(1)])
optimizer = tf.keras.optimizers.Adagrad(learning_rate=0.05)
model.compile(optimizer, "mse", steps_per_execution=10)
INFO:tensorflow:Found TPU system: INFO:tensorflow:Found TPU system: INFO:tensorflow:*** Num TPU Cores: 8 INFO:tensorflow:*** Num TPU Cores: 8 INFO:tensorflow:*** Num TPU Workers: 1 INFO:tensorflow:*** Num TPU Workers: 1 INFO:tensorflow:*** Num TPU Cores Per Worker: 8 INFO:tensorflow:*** Num TPU Cores Per Worker: 8 INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:localhost/replica:0/task:0/device:CPU:0, CPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:localhost/replica:0/task:0/device:CPU:0, CPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:CPU:0, CPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:CPU:0, CPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:0, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:0, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:1, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:1, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:2, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:2, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:3, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:3, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:4, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:4, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:5, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:5, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:6, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:6, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:7, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU:7, TPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU_SYSTEM:0, TPU_SYSTEM, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:TPU_SYSTEM:0, TPU_SYSTEM, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:XLA_CPU:0, XLA_CPU, 0, 0) INFO:tensorflow:*** Available Device: _DeviceAttributes(/job:worker/replica:0/task:0/device:XLA_CPU:0, XLA_CPU, 0, 0)
इसके साथ, आप प्रशिक्षण डेटासेट के साथ मॉडल को प्रशिक्षित करने के लिए तैयार हैं:
model.fit(dataset, epochs=5, steps_per_epoch=10)
Epoch 1/5 10/10 [==============================] - 2s 151ms/step - loss: 0.0840 Epoch 2/5 10/10 [==============================] - 0s 3ms/step - loss: 9.6915e-04 Epoch 3/5 10/10 [==============================] - 0s 3ms/step - loss: 1.5100e-05 Epoch 4/5 10/10 [==============================] - 0s 3ms/step - loss: 2.3593e-07 Epoch 5/5 10/10 [==============================] - 0s 3ms/step - loss: 3.7059e-09 <keras.callbacks.History at 0x7fec58275438>
अंत में, मूल्यांकन डेटासेट का उपयोग करके मॉडल का मूल्यांकन करें:
model.evaluate(eval_dataset, return_dict=True)
1/1 [==============================] - 2s 2s/step - loss: 0.6127 {'loss': 0.6127181053161621}
अगले कदम
TensorFlow 2 में TPUStrategy
के बारे में अधिक जानने के लिए, निम्नलिखित संसाधनों पर विचार करें:
- गाइड:
Model.fit
का उपयोग करें (केरसtf.distribute.TPUStrategy
के साथ प्रशिक्षण को कवरtf.function
। - गाइड: TensorFlow के साथ वितरित प्रशिक्षण
अपने प्रशिक्षण को अनुकूलित करने के बारे में अधिक जानने के लिए, देखें:
टीपीयू—मशीन लर्निंग के लिए गूगल के विशेष एएसआईसी— गूगल कोलाब, टीपीयू रिसर्च क्लाउड और क्लाउड टीपीयू के जरिए उपलब्ध हैं।