그래서 나는 과거 동안이 주제를 봤어 어떤 해결책을 가로 질러 오지 않았다.Tensorflow, tf.equals를 부울로 활용하는 방법은 무엇입니까?
그래서 목록 ("iterateOverMe")을 반복하고 지정된 값 ("value")과 동일한 모든 요소를 "1"로 바꿀 수있는 람다 함수가 있습니다. 다른 값은 "9"로 표시해야합니다. "형식 오류 :
idk = tf.map_fn(lambda x: 1 if tf.equal(tf.cast(x, tf.int32), value) else 9, iterateOverMe, dtype=tf.int32)
는하지만 다음과 같은 말을 오류 메시지가 표시됩니다. 파이썬 bool
이 허용되지 않는 tf.Tensor
로 사용을 텐서가 정의되어있는 경우 테스트하는 대신 if t:
의 if t is not None:
를 사용하고 TensorFlow 작전을 사용 텐서의 값에 조건부로 서브 그래프를 실행하기 위해 tf.cond와 같이. "
그러나 적어도 tf.equal 문을 직접 인쇄 할 때 예상되는 True/False 값을 제공합니다!
내가 시도한 것.
1 : tensor에 reduce_all을 사용하고 작동하지 않아도 여전히 같은 오류가 발생합니다.
TypeError : tf.Tensor
을 Python bool
으로 사용하는 것은 허용되지 않습니다. 텐서가 정의되었는지 테스트하려면 if t:
대신 if t is not None:
을 사용하고 tf.cond와 같은 TensorFlow 연산을 사용하여 텐서 값에 조건이 지정된 하위 그래프를 실행하십시오.
2 : 제안 된 "t가 없음이 아닙니다."를 사용하십시오. 아무리해도 아무 것도 없음과 같지 않으므로 작동하지 않습니다.
그래서 나는 슬프게도 잘못된 1의 목록을 얻습니다.
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
3 : tf.cond를 사용하여 그렇게 시도했습니다. 그러나 나는 진실하거나 틀린 것을 돌려주고 싶기 때문에 전혀 작동하지 않습니다. 호출 가능함이 필요합니다. idk = tf.map_fn (tf.equal (tf.cast (x, tf.int32), 반복기)의 경우 람다 x : 1, 참, 거짓) else -1, modifiedTrainingLabels, dtype = tf.int32)
4 :이 ...이 가증함 또한 작동하지 않았습니다.
idk = tf.map_fn(lambda x: 1 if tf.cond(tf.equal(tf.cast(x, tf.int32), iterator), lambda : True, lambda: False) else 9, modifiedTrainingLabels, dtype=tf.int32)