InvalidArgumentError: Значение для attr ‘T’ int64 отсутствует в списке допустимых значений: половина, bfloat16, float, double

#python #tensorflow2.0

Вопрос:

Итак, в основном я пытаюсь передать данные, необходимые для потери tensorflow ctc, в этом формате на основе этой документации здесь

итак, вот такой формат :

 y true :  (43090, 100)   <dtype: 'int64'>
y pred :  (43090, 13, 26)   <dtype: 'int64'>
y true len :  (43090,)   <dtype: 'int64'>
y pred len :  (43090,)   <dtype: 'int64'>
 

Ошибка :

 InvalidArgumentError: Value for attr 'T' of int64 is not in the list of allowed values: half, bfloat16, float, double
    ; NodeDef: {{node LogSoftmax}}; Op<name=LogSoftmax; signature=logits:T -> logsoftmax:T; attr=T:type,allowed=[DT_HALF, DT_BFLOAT16, DT_FLOAT, DT_DOUBLE]> [Op:LogSoftmax]
 

сначала формат был np.int32, затем я попробовал с tf.int32 до tf.int64, и он получил ту же ошибку. Затем я попытался перейти на tf.float32, я получил ту же ошибку, но с той разницей, что для этого требуется тип int.

 InvalidArgumentError: Value for attr 'TI' of float is not in the list of allowed values: uint8, int32, int64
    ; NodeDef: {{node OneHot}}; Op<name=OneHot; signature=indices:TI, depth:int32, on_value:T, off_value:T -> output:T; attr=axis:int,default=-1; attr=T:type; attr=TI:type,default=DT_INT64,allowed=[DT_UINT8, DT_INT32, DT_INT64]> [Op:OneHot]
 

я понятия не имел, какой подход я мог бы применить, и прошу прощения за плохой английский.