Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

tf.DeviceSpec

TensorFlow 1 versi Lihat sumber di GitHub

Merupakan (mungkin sebagian) spesifikasi untuk perangkat TensorFlow.

DeviceSpec s digunakan di seluruh TensorFlow untuk menggambarkan di mana negara disimpan dan perhitungan terjadi. Menggunakan DeviceSpec memungkinkan Anda untuk mengurai string perangkat spek untuk memverifikasi keabsahan mereka, menggabungkan mereka atau menulis mereka pemrograman.

Contoh:

 # Place the operations on device "GPU:0" in the "ps" job.
device_spec = DeviceSpec(job="ps", device_type="GPU", device_index=0)
with tf.device(device_spec.to_string()):
  # Both my_var and squared_var will be placed on /job:ps/device:GPU:0.
  my_var = tf.Variable(..., name="my_variable")
  squared_var = tf.square(my_var)
 

Dengan eksekusi ingin dinonaktifkan (secara default di TensorFlow 1.x dan dengan memanggil disable_eager_execution () di TensorFlow 2.x), sintaks berikut dapat digunakan:

 tf.compat.v1.disable_eager_execution()

# Same as previous
device_spec = DeviceSpec(job="ps", device_type="GPU", device_index=0)
# No need of .to_string() method.
with tf.device(device_spec):
  my_var = tf.Variable(..., name="my_variable")
  squared_var = tf.square(my_var)
 ```

If a `DeviceSpec` is partially specified, it will be merged with other
`DeviceSpec`s according to the scope in which it is defined. `DeviceSpec`
components defined in inner scopes take precedence over those defined in
outer scopes.

```python
gpu0_spec = DeviceSpec(job="ps", device_type="GPU", device_index=0)
with tf.device(DeviceSpec(job="train").to_string()):
  with tf.device(gpu0_spec.to_string()):
    # Nodes created here will be assigned to /job:ps/device:GPU:0.
  with tf.device(DeviceSpec(device_type="GPU", device_index=1).to_string()):
    # Nodes created here will be assigned to /job:train/device:GPU:1.
 

Sebuah DeviceSpec terdiri dari 5 komponen - yang masing-masing opsional ditentukan:

  • Pekerjaan: Nama Pekerjaan.
  • Replica: Indeks replika.
  • Tugas: Indeks tugas.
  • jenis perangkat: Jenis perangkat String (misalnya "CPU" atau "GPU").
  • Indeks perangkat: Indeks perangkat.

job tali. Opsional nama pekerjaan.
replica int. Indeks replika opsional.
task int. Indeks tugas opsional.
device_type Opsional jenis perangkat String (misalnya "CPU" atau "GPU")
device_index int. Indeks perangkat opsional. Jika dibiarkan tidak ditentukan, perangkat merupakan 'salah' device_index.

device_index

device_type

job

replica

task

metode

from_string

Lihat sumber

Membangun DeviceSpec dari string.

args
spec string dari bentuk / pekerjaan: / Replika: /tugas: / Perangkat: CPU: atau / pekerjaan: / Replika: /tugas: / Perangkat: GPU: sebagai cpu dan gpu saling eksklusif. Semua entri adalah opsional.

Pengembalian
Sebuah DeviceSpec.

make_merged_spec

Lihat sumber

Mengembalikan DeviceSpec baru yang menggabungkan dev .

Ketika menggabungkan spesifikasi, dev akan lebih diutamakan daripada spec saat ini. Jadi misalnya:

 first_spec = tf.DeviceSpec(job=0, device_type="CPU")
second_spec = tf.DeviceSpec(device_type="GPU")
combined_spec = first_spec.make_merged_spec(second_spec)
 

adalah setara dengan:

 combined_spec = tf.DeviceSpec(job=0, device_type="GPU")
 

args
dev a DeviceSpec

Pengembalian
Sebuah baru DeviceSpec yang menggabungkan self dan dev

parse_from_string

Lihat sumber

Mengurai DeviceSpec nama menjadi komponen-komponennya.

2.x perubahan perilaku: Dalam TensorFlow 1.x, ini bermutasi fungsi negara dan kembali sendiri sendiri. Dalam 2.x, DeviceSpecs yang berubah, dan fungsi ini akan mengembalikan DeviceSpec yang berisi spec.

direkomendasikan:

 # my_spec and my_updated_spec are unrelated.
my_spec = tf.DeviceSpec.from_string("/CPU:0")
my_updated_spec = tf.DeviceSpec.from_string("/GPU:0")
with tf.device(my_updated_spec):
  ...
 

Akan bekerja dalam 1.x dan 2.x (meskipun usang dalam 2.x):

 my_spec = tf.DeviceSpec.from_string("/CPU:0")
my_updated_spec = my_spec.parse_from_string("/GPU:0")
with tf.device(my_updated_spec):
  ...
 

TIDAK akan bekerja di 2.x:

 my_spec = tf.DeviceSpec.from_string("/CPU:0")
my_spec.parse_from_string("/GPU:0")  # <== Will not update my_spec
with tf.device(my_spec):
  ...
 

Secara umum, DeviceSpec.from_string harus sepenuhnya menggantikan DeviceSpec.parse_from_string , dan DeviceSpec.replace harus sepenuhnya menggantikan pengaturan atribut secara langsung.

args
spec string opsional dari bentuk / pekerjaan: / Replika: /tugas: / Perangkat: CPU: atau / pekerjaan: / Replika: /tugas: / Perangkat: GPU: sebagai cpu dan gpu saling eksklusif. Semua entri adalah opsional.

Pengembalian
The DeviceSpec .

kenaikan gaji
ValueError jika spec tidak valid.

replace

Lihat sumber

Metode kenyamanan untuk membuat DeviceSpec baru dengan bidang utama.

Misalnya:

 my_spec = DeviceSpec=(job="my_job", device="CPU")
my_updated_spec = my_spec.replace(device="GPU")
my_other_spec = my_spec.replace(device=None)
 

args
**kwargs Metode ini mengambil args sama dengan konstruktor DeviceSpec

Pengembalian
Sebuah DeviceSpec dengan bidang yang ditentukan dalam kwargs diganti.

to_string

Lihat sumber

Kembali representasi string ini DeviceSpec .

Pengembalian
string dari bentuk / pekerjaan: / Replika: /tugas: /alat: : .

__eq__

Lihat sumber

Cek jika other DeviceSpec adalah sama dengan contoh saat, misalnya Memiliki

nilai yang sama untuk semua bidang internal.

args
other lain DeviceSpec

Pengembalian
Kembali True jika other juga contoh DeviceSpec dan memiliki nilai yang sama dengan contoh saat. Kembali False sebaliknya.