TFF에서 Python 함수 실행하기
다음 예는 Python 함수가 TFF 계산이 되는 방법과 계산이 TFF에 의해 평가되는 방법을 강조하기 위한 것입니다.
사용자 관점:
tff.backends.native.set_local_execution_context() # 3
@tff.tf_computation(tf.int32) # 2
def add_one(x): # 1
return x + 1
result = add_one(2) # 4
Python 함수를 작성합니다.
@tff.tf_computation
으로 Python 함수를 데코레이팅합니다.참고: 지금은 데코레이터 자체의 고유 정보가 아니라 Python 함수가 데코레이팅된다는 것이 중요합니다. 아래에 자세히 설명되어 있습니다.
TFF context를 설정합니다.
Python 함수를 호출합니다.
TFF 관점:
Python이 구문 분석될 때 @tff.tf_computation
데코레이터는 Python 함수를 추적하고 TFF 계산을 구성합니다.
데코레이팅된 Python 함수가 호출될 때 TFF 계산이 호출되며, TFF는 설정된 context에서 계산을 컴파일 및 실행합니다.
TF vs. TFF vs. Python
tff.backends.native.set_local_execution_context()
@tff.tf_computation(tf.int32)
def add_one(x):
return x + 1
@tff.federated_computation(tff.type_at_clients(tf.int32))
def add_one_to_all_clients(values):
return tff.federated_map(add_one, values)
values = [1, 2, 3]
values = add_one_to_all_clients(values)
values = add_one_to_all_clients(values)
>>> [3, 4, 5]
TODO(b/153500547): TF vs. TFF vs. Python 예를 설명합니다.