tfc.run
API ช่วยให้คุณฝึกโมเดลในวงกว้างบน GCP
tfc.run
API สามารถใช้ได้สี่วิธี สิ่งนี้ถูกกำหนดโดยตำแหน่งที่คุณใช้งาน API (สคริปต์ Python เทียบกับสมุดบันทึก Python) และพารามิเตอร์ entry_point
ของคุณ:
- ไฟล์ Python เป็น
entry_point
- ไฟล์ Notebook เป็น
entry_point
-
run
ภายในสคริปต์ Python ที่มีโมเดลtf.keras
-
run
ภายในสคริปต์สมุดบันทึกที่มีโมเดลtf.keras
วิธีที่พบบ่อยที่สุดคือการใช้run
ภายในโน้ตบุ๊ก
entry_point
คือ (พาธไปยัง) สคริปต์ Python หรือไฟล์โน้ตบุ๊ก หรือ None
หาก None
ไฟล์ปัจจุบันทั้งหมดจะถูกส่งไปยัง Google Cloud
การใช้ไฟล์ Python เป็น entry_point
หากคุณมีโมเดล tf.keras
ในไฟล์ python ( mnist_example.py
) คุณสามารถเขียนสคริปต์ง่ายๆ ต่อไปนี้ ( scale_mnist.py
) เพื่อปรับขนาดโมเดลของคุณบน GCP
import tensorflow_cloud as tfc
tfc.run(entry_point='mnist_example.py')
โปรดทราบว่าไฟล์ทั้งหมดในแผนผังไดเร็กทอรีเดียวกันกับ entry_point
จะถูกรวมไว้ในอิมเมจนักเทียบท่าที่สร้างขึ้น พร้อมด้วยไฟล์ entry_point
ขอแนะนำให้สร้างไดเร็กทอรีใหม่เพื่อจัดเก็บโปรเจ็กต์บนคลาวด์แต่ละโปรเจ็กต์ซึ่งประกอบด้วยไฟล์ที่จำเป็นและไม่มีอะไรอื่นอีก เพื่อเพิ่มประสิทธิภาพเวลาในการสร้างอิมเมจ
การใช้ไฟล์โน้ตบุ๊กเป็น entry_point
หากคุณมีโมเดล tf.keras
ในไฟล์โน้ตบุ๊ก ( mnist_example.ipynb
) คุณสามารถเขียนสคริปต์ง่ายๆ ต่อไปนี้ ( scale_mnist.py
) เพื่อปรับขนาดโมเดลของคุณบน GCP
import tensorflow_cloud as tfc
tfc.run(entry_point='mnist_example.ipynb')
โปรดทราบว่าไฟล์ทั้งหมดในแผนผังไดเร็กทอรีเดียวกันกับ entry_point
จะถูกรวมไว้ในอิมเมจนักเทียบท่าที่สร้างขึ้น พร้อมด้วยไฟล์ entry_point
เช่นเดียวกับสคริปต์ Python entry_point
ด้านบน เราขอแนะนำให้สร้างไดเร็กทอรีใหม่เพื่อเก็บโปรเจ็กต์บนคลาวด์แต่ละโปรเจ็กต์ซึ่งประกอบด้วยไฟล์ที่จำเป็นและไม่มีอะไรอื่นอีก เพื่อปรับเวลาในการสร้างอิมเมจให้เหมาะสมที่สุด
การใช้ run
ภายในสคริปต์ Python ที่มีโมเดล tf.keras
คุณสามารถใช้ run
API จากภายในไฟล์ python ของคุณที่มีโมเดล tf.keras
( mnist_scale.py
) ในกรณีการใช้งานนี้ entry_point
ควรเป็น None
คุณสามารถเรียก API run
ทุกที่ และไฟล์ทั้งหมดจะถูกดำเนินการจากระยะไกล คุณสามารถเรียก API ในตอนท้ายเพื่อเรียกใช้สคริปต์ในเครื่องเพื่อวัตถุประสงค์ในการแก้ไขจุดบกพร่อง (อาจมียุคและแฟล็กอื่นๆ น้อยลง)
import tensorflow_datasets as tfds
import tensorflow as tf
import tensorflow_cloud as tfc
tfc.run(
entry_point=None,
distribution_strategy='auto',
requirements_txt='requirements.txt',
chief_config=tfc.MachineConfig(
cpu_cores=8,
memory=30,
accelerator_type=tfc.AcceleratorType.NVIDIA_TESLA_T4,
accelerator_count=2),
worker_count=0)
datasets, info = tfds.load(name='mnist', with_info=True, as_supervised=True)
mnist_train, mnist_test = datasets['train'], datasets['test']
num_train_examples = info.splits['train'].num_examples
num_test_examples = info.splits['test'].num_examples
BUFFER_SIZE = 10000
BATCH_SIZE = 64
def scale(image, label):
image = tf.cast(image, tf.float32)
image /= 255
return image, label
train_dataset = mnist_train.map(scale).cache()
train_dataset = train_dataset.shuffle(BUFFER_SIZE).batch(BATCH_SIZE)
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(32, 3, activation='relu', input_shape=(
28, 28, 1)),
tf.keras.layers.MaxPooling2D(),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(loss='sparse_categorical_crossentropy',
optimizer=tf.keras.optimizers.Adam(),
metrics=['accuracy'])
model.fit(train_dataset, epochs=12)
โปรดทราบว่าไฟล์ทั้งหมดในแผนผังไดเร็กทอรีเดียวกันกับสคริปต์ python จะถูกรวมเป็นแพ็กเกจในอิมเมจนักเทียบท่าที่สร้างขึ้นพร้อมกับไฟล์ python ขอแนะนำให้สร้างไดเร็กทอรีใหม่เพื่อจัดเก็บโปรเจ็กต์บนคลาวด์แต่ละโปรเจ็กต์ซึ่งประกอบด้วยไฟล์ที่จำเป็นและไม่มีอะไรอื่นอีก เพื่อเพิ่มประสิทธิภาพเวลาในการสร้างอิมเมจ
การใช้ run
ภายในสคริปต์สมุดบันทึกที่มีโมเดล tf.keras
ในกรณีการใช้งานนี้ entry_point
ควรเป็น None
และต้องระบุ docker_config.image_build_bucket
เพื่อให้แน่ใจว่าสามารถจัดเก็บและเผยแพร่บิลด์ได้
จะเกิดอะไรขึ้นเมื่อคุณเรียก run
?
การเรียก API จะดำเนินการดังต่อไปนี้:
- เตรียมเอนทิตีโค้ด เช่น สคริปต์ Keras/โน้ตบุ๊ก คลาวด์ และการแจกจ่ายให้พร้อม
- การแปลงเอนทิตีการแจกจ่ายนี้เป็น คอนเทนเนอร์นักเทียบ ท่าที่มีการขึ้นต่อกันที่จำเป็น
- ปรับใช้ คอนเทนเนอร์นี้ตามขนาดและฝึกอบรมโดยใช้กลยุทธ์การกระจาย TensorFlow
- สตรีมบันทึก และตรวจสอบบน TensorBoard ที่โฮสต์ จัดการพื้นที่เก็บข้อมูลจุดตรวจ
ตามค่าเริ่มต้น Docker daemon ในเครื่องสำหรับการสร้างและเผยแพร่อิมเมจ Docker ไปยังรีจิสทรีคอนเทนเนอร์ของ Google รูปภาพได้รับการเผยแพร่ไปที่ gcr.io/your-gcp-project-id
หากคุณระบุ docker_config.image_build_bucket
เราจะใช้ Google Cloud build เพื่อสร้างและเผยแพร่อิมเมจ Docker
แพลตฟอร์ม Google AI ใช้สำหรับปรับใช้อิมเมจ Docker บน Google Cloud