ฝึกโมเดล Shakespeare ด้วย GPU แทน TPU

ฉันกำลังพยายามดูความแตกต่างระหว่างการฝึกโมเดลด้วย TPU และ GPU

นี่คือส่วนของรูปแบบการฝึกอบรม:

import time

start = time.time()
tf.keras.backend.clear_session()

resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='grpc://' + os.environ['COLAB_TPU_ADDR'])
tf.config.experimental_connect_to_cluster(resolver)
#TPU initialization
tf.tpu.experimental.initialize_tpu_system(resolver)
print("All devices: ", tf.config.list_logical_devices('TPU'))

strategy = tf.distribute.experimental.TPUStrategy(resolver)

with strategy.scope():
  training_model = lstm_model(seq_len=100, stateful=False)
  training_model.compile(
      optimizer=tf.keras.optimizers.RMSprop(learning_rate=0.01),
      loss='sparse_categorical_crossentropy',
      metrics=['sparse_categorical_accuracy'])

training_model.fit(
    input_fn(),
    steps_per_epoch=100,
    epochs=10
)
training_model.save_weights('/tmp/bard.h5', overwrite=True)

end = time.time()
elapsed_TPU = end - start

print(elapsed_TPU)

(ที่มา:https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/shakespeare_with_tpu_and_keras.ipynb )

ส่วนบนของโค้ดมีไว้สำหรับการเริ่มต้น TPU มีวิธีใดบ้างที่จะเปลี่ยนแปลงเพื่อให้สามารถปรับให้ทำงานบน GPU ได้?


person Gaston    schedule 25.03.2021    source แหล่งที่มา
comment
ตรวจสอบที่นี่ colab.research.google.com/notebooks/gpu.ipynb   -  person albert    schedule 25.03.2021
comment
ขอบคุณสำหรับการตอบกลับ แต่ก็ยังไม่ได้ช่วยปรับให้เข้ากับอัลกอริธึมต่อไปนี้กับ GPU ฉันจะบรรลุถึง Strategy.scope() ด้วย GPU แทน TPU ได้อย่างไร   -  person Gaston    schedule 25.03.2021


คำตอบ (1)


คุณไม่จำเป็นต้องใช้ tf.distribute.Strategy เว้นแต่ว่าคุณมี TPU หรือ CPU/GPU หลายตัว ดู ที่นี่ คุณสามารถเรียกใช้สิ่งนี้เป็นโค้ด Tensorflow มาตรฐานได้โดยไม่ต้องมีกลยุทธ์

import time

start = time.time()
tf.keras.backend.clear_session()

training_model = lstm_model(seq_len=100, stateful=False)
training_model.compile(
    optimizer=tf.keras.optimizers.RMSprop(learning_rate=0.01),
    loss='sparse_categorical_crossentropy',
    metrics=['sparse_categorical_accuracy'])

training_model.fit(
    input_fn(),
    steps_per_epoch=100,
    epochs=10
)
training_model.save_weights('/tmp/bard.h5', overwrite=True)

end = time.time()
elapsed_TPU = end - start

print(elapsed_TPU)
person albert    schedule 25.03.2021
comment
ฉันเห็นแล้ว ขอบคุณสำหรับความช่วยเหลือของคุณ - person Gaston; 25.03.2021