Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

tff.simulation.TransformingClientData

Lihat sumber di GitHub

Mentransformasi data klien, berpotensi memperluas dengan menambahkan pseudo-klien.

Mewarisi Dari: ClientData

Setiap klien dari raw_client_data adalah "diperluas" ke beberapa nomor pseudo-klien. Setiap ID klien adalah string yang terdiri dari ID klien asli ditambah indeks integer concatenated. Misalnya, baku klien id "client_a" mungkin diperluas menjadi pseudo-klien id "client_a_0", "client_a_1" dan "client_a_2". Sebuah fn fungsi (x) peta datapoint x ke datapoint baru, di mana konstruktor dari fn adalah parameterized oleh (mentah) client_id dan indeks i. Sebagai contoh jika x adalah gambar, maka make_transform_fn ( "client_a", 0) (x) mungkin identitas, sementara make_transform_fn ( "client_a", 1) (x) bisa menjadi rotasi acak gambar dengan sudut yang ditentukan oleh hash "client_a" dan "1". Biasanya oleh konvensi indeks 0 berkorespondensi dengan fungsi identitas jika identitas didukung.

raw_client_data Sebuah ClientData untuk memperluas.
make_transform_fn Sebuah fungsi yang mengembalikan sebuah callable bahwa peta datapoint x ke datapoint baru x'. make_transform_fn akan disebut sebagai make_transform_fn (raw_client_id, i) di mana saya adalah indeks integer, dan harus kembali fungsi fn (x) -> x. Sebagai contoh jika x adalah gambar, maka make_transform_fn ( "client_a", 0) (x) mungkin identitas, sementara make_transform_fn ( "client_a", 1) (x) bisa menjadi rotasi acak gambar dengan sudut yang ditentukan oleh hash "client_a" dan "1". Jika transform_fn_cons kembali None , tidak ada transformasi dilakukan. Biasanya oleh konvensi indeks 0 berkorespondensi dengan fungsi identitas jika identitas didukung.
num_transformed_clients Jumlah klien berubah untuk menghasilkan. Jika ia adalah sebuah k bilangan bulat kelipatan jumlah klien yang nyata, akan ada persis k pseudo-klien per klien yang nyata, dengan indeks 0 ... k-1. Setiap sisanya g akan dihasilkan dari pertama g klien nyata dan akan diberikan indeks k.

client_ids Daftar pengidentifikasi string klien dalam dataset ini.
dataset_computation Sebuah tff.Computation menerima ID klien, kembali dataset.

ClientData implementasi yang tidak mendukung dataset_computation harus menaikkan NotImplementedError jika atribut ini diakses.

element_type_structure Jenis elemen informasi dari dataset klien.

elemen dikembalikan oleh dataset dalam ClientData objek.

metode

create_tf_dataset_for_client

Lihat sumber

Menciptakan baru tf.data.Dataset yang berisi contoh pelatihan klien.

args
client_id String client_id untuk klien yang diinginkan.

Pengembalian
Sebuah tf.data.Dataset objek.

create_tf_dataset_from_all_clients

Lihat sumber

Menciptakan baru tf.data.Dataset berisi semua contoh klien.

Fungsi ini dimaksudkan untuk pelatihan penggunaan terpusat, model non-terdistribusi (NUM_CLIENTS = 1). Hal ini dapat berguna sebagai titik perbandingan terhadap model federasi.

Saat ini, pelaksanaan menghasilkan dataset yang berisi semua contoh dari klien tunggal dalam rangka, dan menyeret jadi umumnya tambahan harus dilakukan.

args
seed Opsional, benih untuk menentukan urutan di mana klien diproses dalam dataset bergabung. benih dapat berupa 32-bit unsigned integer atau array bilangan bulat tersebut.

Pengembalian
Sebuah tf.data.Dataset objek.

datasets

Lihat sumber

Menghasilkan tf.data.Dataset untuk setiap klien secara acak.

Fungsi ini dimaksudkan untuk digunakan membangun array statis data klien yang akan diberikan ke tingkat atas perhitungan federasi.

args
limit_count Opsional, jumlah maksimum dataset untuk kembali.
seed Opsional, benih untuk menentukan urutan di mana klien diproses dalam dataset bergabung. benih dapat berupa 32-bit unsigned integer atau array bilangan bulat tersebut.

from_clients_and_fn

Lihat sumber

Membangun sebuah ClientData berdasarkan fungsi yang diberikan.

args
client_ids Sebuah daftar non-kosong client_ids yang input yang valid untuk create_tf_dataset_for_client_fn tersebut.
create_tf_dataset_for_client_fn Sebuah fungsi yang mengambil client_id dari daftar di atas, dan mengembalikan tf.data.Dataset .

Pengembalian
Sebuah ClientData .

preprocess

Lihat sumber

Berlaku preprocess_fn data masing-masing klien.

train_test_client_split

Lihat sumber

Pengembalian sepasang (kereta, test) ClientData .

Metode ini partisi klien dari client_data menjadi dua ClientData objek dengan set menguraikan dari ClientData.client_ids . Semua klien dalam tes ClientData dijamin untuk memiliki dataset non-kosong, tapi pelatihan ClientData mungkin memiliki klien dengan data.

args
client_data Dasar ClientData untuk split.
num_test_clients Berapa banyak klien untuk bertahan untuk pengujian. Hal ini dapat paling len (client_data.client_ids) - 1, karena kita tidak ingin menghasilkan kosong ClientData .

Pengembalian
Sepasang (train_client_data, test_client_data), di mana test_client_data telah num_test_clients dipilih secara acak, tunduk kendala mereka masing-masing memiliki minimal 1 batch dalam dataset mereka.

kenaikan gaji
ValueError Jika num_test_clients tidak dapat satistifed oleh client_data , atau terlalu banyak klien memiliki dataset kosong.