Tôi đang chạy mô hình Tensorflow phân tán lớn trong công cụ google cloud ML. Tôi muốn sử dụng máy có GPU. Biểu đồ của tôi bao gồm hai phần chính là chức năng đầu vào/đầu đọc dữ liệu và phần tính toán.Vị trí thiết bị phân phối Tensorflow trong công cụ Google Cloud ML
Tôi muốn đặt các biến trong tác vụ PS, phần đầu vào trong CPU và phần tính toán trên GPU. Chức năng tf.train.replica_device_setter
sẽ tự động đặt các biến trong máy chủ PS.
Đây là những gì mã của tôi trông giống như:
with tf.device(tf.train.replica_device_setter(cluster=cluster_spec)):
input_tensors = model.input_fn(...)
output_tensors = model.model_fn(input_tensors, ...)
Có thể sử dụng tf.device()
cùng với replica_device_setter()
như trong:
with tf.device(tf.train.replica_device_setter(cluster=cluster_spec)):
with tf.device('/cpu:0')
input_tensors = model.input_fn(...)
with tf.device('/gpu:0')
tensor_dict = model.model_fn(input_tensors, ...)
Liệu replica_divice_setter()
được ghi đè và biến không được đặt trong máy chủ PS?
Hơn nữa, vì tên thiết bị trong cụm là một cái gì đó như job:master/replica:0/task:0/gpu:0
làm cách nào để nói với Tensorflow tf.device(whatever/gpu:0)
?
Xác định tf.device riêng của bạn() sẽ ghi đè bất kỳ thiết bị replica setter trong phạm vi bên ngoài –