このページは Cloud Translation API によって翻訳されました。
Switch to English

tff.simulation.TransformingClientData

GitHubの上のソースを表示

トランスフォームクライアントデータは、潜在的に疑似クライアントを追加することによって拡張します。

:から継承ClientData

raw_client_dataの各クライアントは、擬似クライアントのいくつかの数値に「拡大」されます。各クライアントIDは、元のクライアントIDプラス連結整数インデックスで構成される文字列です。例えば、生のクライアントID「client_aは」擬似クライアントID「client_a_0」、「client_a_1」と「client_a_2」に展開されることがあります。関数fn(x)はデータポイントは、FNのコンストラクタは、(生)CLIENT_ID及びインデックスiによってパラメータ化された新しいデータポイントにxはマップ。 xが画像である場合には、角度によって決まるとmake_transform_fn(「client_a」、1)(x)は、画像のランダム回転することができるが、例えば、次にmake_transform_fn(「client_a」、0)、(X)は、同一であるかもしれません「client_a」と「1」のハッシュ。典型的には、慣例により恒等関数にインデックス0相当の同一性がサポートされている場合。

raw_client_data 拡大するClientData。
make_transform_fn データポイントは、新しいデータポイントにxはマップする呼び出し可能を返す関数は、x」を。 make_transform_fn(iは、raw_client_id)iは整数インデックスであり、関数fn(x)を返すべき場所make_transform_fnとして呼び出される - > X。 xが画像である場合には、角度によって決まるとmake_transform_fn(「client_a」、1)(x)は、画像のランダム回転することができるが、例えば、次にmake_transform_fn(「client_a」、0)、(X)は、同一であるかもしれません「client_a」と「1」のハッシュ。 transform_fn_consリターンの場合はNone 、何の変換は実行されません。典型的には、慣例により恒等関数にインデックス0相当の同一性がサポートされている場合。
num_transformed_clients 農産物への変換クライアントの合計数。それは本当のクライアントの数の整数倍kのであれば、インデックス0 ... K-1で、実際のクライアントごとに正確にk個の擬似クライアントが存在します。任意の残りのGが最初G本物のクライアントから生成され、インデックスkを説明します。

client_ids このデータセット内のクライアントのための文字列識別子のリスト。
dataset_computation A tff.Computationデータセットを返し、クライアントのIDを受け入れます。

ClientDataサポートしない実装dataset_computation上げる必要があるNotImplementedErrorこの属性がアクセスされた場合。

element_type_structure クライアントデータセットの要素の型情報。

この中でデータセットによって返される要素ClientDataオブジェクト。

メソッド

create_tf_dataset_for_client

ソースを表示

新しい作成tf.data.Datasetクライアントの訓練例を含むを。

引数
client_id 文字列は、必要なクライアントのためにCLIENT_ID。

戻り値
tf.data.Datasetオブジェクト。

create_tf_dataset_from_all_clients

ソースを表示

新しい作成tf.data.Dataset すべてのクライアントの例を含むを。

この機能は、非分散モデル(NUM_CLIENTS = 1)集中使用訓練のために意図されています。これは連合のモデルとの比較のポイントとして有用であり得ます。

現在、実装が順番に単一のクライアントからのすべての例が含まれているデータセットを生成し、そのため一般的に、追加のシャッフルを行うべきです。

引数
seed 任意に、シードは、クライアントが参加し、データセット内で処理される順序を決定します。種子は、任意の32ビットの符号なし整数又は整数のアレイとすることができます。

戻り値
tf.data.Datasetオブジェクト。

datasets

ソースを表示

利回りtf.data.Datasetランダムな順序で各クライアントのために。

この関数は、トップレベルの連合計算に提供するクライアントデータの静的配列を構築する使用のために意図されています。

引数
limit_count オプション、復帰へのデータセットの最大数。
seed 任意に、シードは、クライアントが参加し、データセット内で処理される順序を決定します。種子は、任意の32ビットの符号なし整数又は整数のアレイとすることができます。

from_clients_and_fn

ソースを表示

構築ClientData与えられた関数に基づいています。

引数
client_ids create_tf_dataset_for_client_fnへの有効な入力ですclient_idsの非空のリスト。
create_tf_dataset_for_client_fn 上記のリストからのclient_idを取り、そして返す関数tf.data.Dataset

戻り値
A ClientData

preprocess

ソースを表示

適用preprocess_fn各クライアントのデータに。

train_test_client_split

ソースを表示

(電車、テスト)のペアを返しClientData

このメソッドは、パーティションのクライアントclient_data 2にClientDataの互いに素な集合を持つオブジェクトClientData.client_ids 。テストのすべてのクライアントClientData 、空でないデータセットを持つことが保証されているが、訓練ClientDataデータのないクライアントを有することができます。

引数
client_data ベースClientData分割します。
num_test_clients どのように多くのクライアントのテストのために保持します。私たちは、空を生成したくないので、1 -これが最大len(client_data.client_ids)であることができClientData

戻り値
test_client_dataをしている対(train_client_data、test_client_data)、 num_test_clients制約をランダム、被写体で選択それら各々は、それらのデータセットの少なくとも1バッチを有します。

発生させます
ValueError 場合num_test_clientsでsatistifedすることができないclient_data 、またはあまりにも多くのクライアントは、空のデータセットを持っています。