TensorFlow 2.0 இல் உள்ள விநியோக உத்தி API என்பது பல சாதனங்கள் மற்றும் இயந்திரங்களில் கணக்கீடுகளை விநியோகிப்பதற்கும் அளவிடுவதற்கும் உயர்நிலை இடைமுகத்தை வழங்குவதன் மூலம் விநியோகிக்கப்பட்ட பயிற்சியை எளிதாக்கும் ஒரு சக்திவாய்ந்த கருவியாகும். டெவலப்பர்கள் தங்கள் மாடல்களை வேகமாகவும் திறமையாகவும் பயிற்றுவிப்பதற்கு பல GPUகள் அல்லது பல இயந்திரங்களின் கணக்கீட்டு சக்தியை எளிதாகப் பயன்படுத்த அனுமதிக்கிறது.
குறிப்பிடத்தக்க கணக்கீட்டு வளங்கள் தேவைப்படும் பெரிய தரவுத்தொகுப்புகள் மற்றும் சிக்கலான மாதிரிகளைக் கையாளுவதற்கு விநியோகிக்கப்பட்ட பயிற்சி அவசியம். விநியோக உத்தி ஏபிஐ மூலம், டென்சர்ஃப்ளோ 2.0 ஆனது ஜிபியுக்கள் போன்ற பல சாதனங்களில், ஒரே இயந்திரத்திற்குள் அல்லது பல இயந்திரங்களில் கணக்கீடுகளை விநியோகிக்க தடையற்ற வழியை வழங்குகிறது. இது இணை செயலாக்கத்தை செயல்படுத்துகிறது மற்றும் வேகமான பயிற்சி நேரத்தை அனுமதிக்கிறது.
TensorFlow 2.0 இல் உள்ள விநியோக உத்தி API ஆனது, சின்க்ரோனஸ் பயிற்சி, ஒத்திசைவற்ற பயிற்சி மற்றும் அளவுரு சேவையகங்கள் உட்பட கணக்கீடுகளை விநியோகிப்பதற்கான பல்வேறு உத்திகளை ஆதரிக்கிறது. ஒத்திசைவான பயிற்சியானது, பயிற்சியின் போது அனைத்து சாதனங்களும் அல்லது இயந்திரங்களும் ஒத்திசைக்கப்படுவதை உறுதிசெய்கிறது, அதே சமயம் ஒத்திசைவற்ற பயிற்சியானது சாதனம் அல்லது இயந்திரம் கிடைப்பதில் அதிக நெகிழ்வுத்தன்மையை அனுமதிக்கிறது. மறுபுறம், அளவுரு சேவையகங்கள், பல சாதனங்கள் அல்லது இயந்திரங்களில் திறமையான அளவுரு பகிர்வை இயக்குகின்றன.
விநியோக உத்தி API ஐப் பயன்படுத்த, டெவலப்பர்கள் தங்கள் மாதிரி மற்றும் பயிற்சி வளையத்தை ஒரு மூலோபாய நோக்கத்தில் வரையறுக்க வேண்டும். இந்த நோக்கம் பயன்படுத்தப்பட வேண்டிய விநியோக உத்தியைக் குறிப்பிடுகிறது மற்றும் அனைத்து தொடர்புடைய கணக்கீடுகளும் அதற்கேற்ப விநியோகிக்கப்படுவதை உறுதி செய்கிறது. TensorFlow 2.0 ஆனது MirroredStrategy போன்ற பல உள்ளமைக்கப்பட்ட விநியோக உத்திகளை வழங்குகிறது, இது பல GPUகளில் மாடலை ஒத்திசைவாகப் பயிற்றுவிக்கிறது, மேலும் MultiWorkerMirroredStrategy, இது MirroredStrategyயை பல இயந்திரங்களில் பயிற்சியை ஆதரிக்கிறது.
TensorFlow 2.0 இல் விநியோக உத்தி API எவ்வாறு பயன்படுத்தப்படலாம் என்பதற்கான எடுத்துக்காட்டு இங்கே:
python import tensorflow as tf strategy = tf.distribute.MirroredStrategy() with strategy.scope(): model = tf.keras.Sequential([...]) # Define your model optimizer = tf.keras.optimizers.Adam() loss_object = tf.keras.losses.SparseCategoricalCrossentropy() train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train)).batch(batch_size) @tf.function def distributed_train_step(inputs): features, labels = inputs with tf.GradientTape() as tape: predictions = model(features, training=True) loss = loss_object(labels, predictions) gradients = tape.gradient(loss, model.trainable_variables) optimizer.apply_gradients(zip(gradients, model.trainable_variables)) return loss for epoch in range(num_epochs): total_loss = 0.0 num_batches = 0 for inputs in train_dataset: per_replica_loss = strategy.run(distributed_train_step, args=(inputs,)) total_loss += strategy.reduce(tf.distribute.ReduceOp.SUM, per_replica_loss, axis=None) num_batches += 1 average_loss = total_loss/num_batches print("Epoch {}: Loss = {}".format(epoch, average_loss))
இந்த எடுத்துக்காட்டில், நாம் முதலில் ஒரு MirroredStrategy பொருளை உருவாக்குகிறோம், இது கிடைக்கக்கூடிய அனைத்து GPUகளிலும் கணக்கீடுகளை விநியோகிக்கும். எங்களின் மாதிரி, உகப்பாக்கி, இழப்பு செயல்பாடு மற்றும் பயிற்சி தரவுத்தொகுப்பை மூலோபாய நோக்கத்தில் வரையறுக்கிறோம். TensorFlow வரைபடத்திற்கு இணக்கமானதாகவும் அதன் செயல்பாட்டை மேம்படுத்தவும் `distributed_train_step` செயல்பாடு `@tf.function` உடன் அலங்கரிக்கப்பட்டுள்ளது.
பயிற்சியின் போது, பயிற்சி தரவுத்தொகுப்பின் தொகுதிகளை மீண்டும் மீண்டும் செய்கிறோம், மேலும் ஒவ்வொரு பிரதியிலும் `விநியோகித்த_ரயில்_படி` செயல்பாட்டைச் செயல்படுத்த `strategy.run` முறையை அழைக்கிறோம். ஒவ்வொரு பிரதி இழப்புகளும் `strategy.reduce` முறையைப் பயன்படுத்தி குறைக்கப்படுகின்றன, மேலும் சராசரி இழப்பு ஒவ்வொரு சகாப்தத்திற்கும் கணக்கிடப்பட்டு அச்சிடப்படுகிறது.
TensorFlow 2.0 இல் விநியோக உத்தி API ஐப் பயன்படுத்துவதன் மூலம், டெவலப்பர்கள் பல சாதனங்கள் அல்லது இயந்திரங்களைப் பயன்படுத்த தங்கள் பயிற்சி செயல்முறையை எளிதாக அளவிட முடியும், இதன் விளைவாக அவர்களின் மாடல்களின் வேகமான மற்றும் திறமையான பயிற்சி கிடைக்கும்.
தொடர்பான பிற சமீபத்திய கேள்விகள் மற்றும் பதில்கள் EITC/AI/TFF டென்சர்ஃப்ளோ அடிப்படைகள்:
- திசையன்களாக வார்த்தைகளை பிரதிநிதித்துவப்படுத்துவதற்கு சரியான அச்சுகளை தானாக ஒதுக்க உட்பொதித்தல் அடுக்கை எவ்வாறு பயன்படுத்தலாம்?
- CNNல் அதிகபட்சமாக பூலிங் செய்வதன் நோக்கம் என்ன?
- கன்வல்யூஷனல் நியூரல் நெட்வொர்க்கில் (சிஎன்என்) அம்சம் பிரித்தெடுத்தல் செயல்முறை பட அங்கீகாரத்திற்கு எவ்வாறு பயன்படுத்தப்படுகிறது?
- TensorFlow.js இல் இயங்கும் இயந்திர கற்றல் மாதிரிகளுக்கு ஒத்திசைவற்ற கற்றல் செயல்பாட்டைப் பயன்படுத்துவது அவசியமா?
- TensorFlow Keras Tokenizer API அதிகபட்ச சொற்களின் அளவுரு என்ன?
- TensorFlow Keras Tokenizer APIஐ அடிக்கடி வார்த்தைகளைக் கண்டறிய பயன்படுத்த முடியுமா?
- TOCO என்றால் என்ன?
- இயந்திரக் கற்றல் மாதிரியில் உள்ள பல சகாப்தங்களுக்கும் மாதிரியை இயக்குவதிலிருந்து கணிப்பதன் துல்லியத்திற்கும் என்ன தொடர்பு?
- டென்சர்ஃப்ளோவின் நியூரல் ஸ்ட்ரக்ச்சர்டு லேர்னிங்கில் உள்ள பேக் அண்டை நாடுகளின் ஏபிஐ, இயற்கையான வரைபடத் தரவின் அடிப்படையில் ஆக்மென்டட் பயிற்சி தரவுத்தொகுப்பை உருவாக்குகிறதா?
- டென்சர்ஃப்ளோவின் நரம்பியல் கட்டமைக்கப்பட்ட கற்றலில் பேக் அண்டை நாடுகளின் API என்றால் என்ன?
EITC/AI/TFF TensorFlow Fundamentals இல் கூடுதல் கேள்விகள் மற்றும் பதில்களைக் காண்க