0
나는 자연의 구분이 같은 것입니다 tensorflow에서 사용자 정의 비용 함수, 정의 할 필요가
def f1(a,b):
pass #Will do Calculation on a and b
def f2(a,b):
pass #Will do Calculation on a and b
def customCostFunction(calculated,target):
if(target > 0): #Trivial Criteria
return f1(calculated,target)
else:
return f2(calculated,target)
내가 tf.py_func의 존재를 알고,하지만 난 정확히 어떻게 확실하지 오전 위의 경우에 사용하십시오. 본질적으로 각 텐서 (예측 대 타겟)의 각 값에 대해 예측 된 값과 목표 값이 전달 된 값에 따라 약간 다른 결과를 반환하는 나를 정의한 함수를 통과해야합니다. 두 가지 완전히 다른 학습 사례).
은 그런 훈련 단계는 다음과 같이 정의된다 : 나는 당신이tf.Variable
인 텐서
calculated_values
이 그 여기에 가정 및
target_values
있어
train = tf.train.AdamOptimizer(learning_rate = LEARNING_RATE).minimize(tf.reduce_sum(customCostFunction(model,targets),0))
예 가정은 정확합니다. 모두 같은 차원. 하나는 자리 표시 자이고 다른 하나는 변수입니다. –
그래서 만약 당신이 당신의 평범한 조건을 위해 부울 텐서를 만들 수 있다면, 그것을 사용하여'tf.map_fn (f1, concat_both)'와'tf.map_fn (f1, concat_both)'에서 원소를 선택하면된다. . '(계산 된, 목표 된) 튜플이 각각'f1'과'f2'를 거치기 때문에 좀 덜 차분합니다. –
작동하지 않습니다. 불평하는 f1은 두 개의 위치 논증을 필요로하지만 단 하나만 제공합니다. –