TensorFlow 2.0 дахь түгээлтийн стратегийн API нь олон төхөөрөмж болон машинуудад тооцооллыг түгээх, масштаблах өндөр түвшний интерфейсээр хангаснаар хуваарилагдсан сургалтыг хялбаршуулдаг хүчирхэг хэрэгсэл юм. Энэ нь хөгжүүлэгчдэд загвараа илүү хурдан, үр дүнтэй сургахын тулд олон GPU эсвэл бүр олон машинуудын тооцооллын хүчийг хялбархан ашиглах боломжийг олгодог.
Түгээмэл сургалт нь их хэмжээний тооцооллын нөөц шаарддаг том өгөгдлийн багц болон нарийн төвөгтэй загваруудыг боловсруулахад зайлшгүй шаардлагатай. Түгээх стратегийн API-ийн тусламжтайгаар TensorFlow 2.0 нь GPU гэх мэт олон төхөөрөмж, нэг машин дотор эсвэл олон машин хооронд тооцооллыг түгээх саадгүй аргыг олгодог. Энэ нь зэрэгцээ боловсруулалтыг идэвхжүүлж, сургалтын цагийг илүү хурдан болгох боломжийг олгодог.
TensorFlow 2.0 дахь түгээлтийн стратеги API нь синхрон сургалт, асинхрон сургалт, параметрийн сервер зэрэг тооцоолол түгээх янз бүрийн стратегийг дэмждэг. Синхрон сургалт нь сургалтын явцад бүх төхөөрөмж эсвэл машиныг синхрончлолд байлгах боломжийг олгодог бол асинхрон сургалт нь төхөөрөмж эсвэл машины бэлэн байдлын хувьд илүү уян хатан байдлыг бий болгодог. Нөгөө талаар параметрийн серверүүд нь олон төхөөрөмж эсвэл машин хооронд параметрүүдийг үр ашигтай хуваалцах боломжийг олгодог.
Түгээлтийн стратеги API-г ашиглахын тулд хөгжүүлэгчид стратегийн хүрээнд өөрсдийн загвар болон сургалтын давталтыг тодорхойлох хэрэгтэй. Энэ хамрах хүрээ нь ашиглах түгээлтийн стратегийг тодорхойлж, холбогдох бүх тооцооллыг зохих ёсоор хуваарилахыг баталгаажуулдаг. TensorFlow 2.0 нь загвараа олон GPU-д синхроноор сургадаг MirroredStrategy, 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 графикт нийцүүлэх, гүйцэтгэлийг оновчтой болгохын тулд `@tf.function`-оор чимэглэсэн.
Сургалтын явцад бид сургалтын өгөгдлийн багцын багцыг давтаж, хуулбар бүр дээр 'тархсан_галтны_алхам' функцийг гүйцэтгэхийн тулд 'strategy.run' аргыг дууддаг. Хуулбарын алдагдлыг дараа нь `strategy.reduce` аргыг ашиглан бууруулж, дундаж алдагдлыг эрин үе бүрт тооцож хэвлэнэ.
TensorFlow 2.0 дахь түгээлтийн стратеги API-г ашигласнаар хөгжүүлэгчид олон төхөөрөмж эсвэл машиныг ашиглахын тулд сургалтын үйл явцаа хялбархан өргөжүүлж, загваруудаа илүү хурдан, үр дүнтэй сургах боломжтой.
Сүүлийн үеийн бусад асуулт, хариулт EITC/AI/TFF TensorFlow Fundamentals:
- Хэрхэн оруулах давхаргыг ашиглан үгсийг вектор болгон дүрслэх графикт тохирох тэнхлэгүүдийг автоматаар хуваарилах вэ?
- CNN-д хамгийн их нөөц бүрдүүлэх зорилго юу вэ?
- Хувирмал мэдрэлийн сүлжээ (CNN) дахь шинж чанарыг задлах процессыг дүрсийг танихад хэрхэн ашигладаг вэ?
- TensorFlow.js дээр ажиллаж байгаа машин сургалтын загваруудад асинхрон сургалтын функцийг ашиглах шаардлагатай юу?
- TensorFlow Keras Tokenizer API үгийн хамгийн их тооны параметр хэд вэ?
- TensorFlow Keras Tokenizer API-г хамгийн түгээмэл үгсийг олоход ашиглаж болох уу?
- TOCO гэж юу вэ?
- Машин сургалтын загвар дахь хэд хэдэн эрин үе ба загварыг ажиллуулахаас урьдчилан таамаглах нарийвчлалын хооронд ямар хамааралтай вэ?
- TensorFlow-ийн мэдрэлийн бүтэцтэй сургалтын API-тай хөрш зэргэлдээх багц нь байгалийн график өгөгдөл дээр суурилсан сургалтын нэмэгдүүлсэн мэдээллийн багц үүсгэдэг үү?
- TensorFlow-ийн мэдрэлийн бүтэцтэй сургалтын програмын хөршүүдийн API гэж юу вэ?
Бусад асуулт, хариултыг EITC/AI/TFF TensorFlow Fundamentals-аас үзнэ үү