Используйте tf.shape (tf.where (условие)) в качестве границы для цикла - PullRequest
0 голосов
/ 12 июня 2019

Я хочу использовать форму (размер) tf.where для границы цикла for с использованием Tensorflow в Pycharm. Однако, когда я пытаюсь сделать это, я получаю ошибку: объект 'Tensor' не может быть интерпретирован как целое число.

Как я могу решить эту проблему?

Содержание разработки.
1. Найдите индекс (idxCut), соответствующий порогу в данных.
2. Проверьте, являются ли данные, соответствующие idxCut, TPR.

Я хочу найти TPR (коэффициент поворота) о idxCut в данных, используя цикл for.
Я использовал цикл for для получения TPR между idx, idx-1 и idx + 1.
Я хочу найти данные [idx] выше, чем другие данные [idx-1, idx + 1].

Вот мой код:

def funCalculate(data):
    ### Cut-off Threshold
    idxCut = tf.where(data > cutoff)
    idxCut = tf.squeeze(idxCut)

    ### Compute by the size of idxCut
    valueCut = []
    for ii in range(0, tf.shape(idxCut)):
        v1 = tf.where(data[idxCut[ii]] > data[idxCut[ii] - 1], 1, 0)
        v2 = tf.where(data[idxCut[ii]] > data[idxCut[ii] + 1], 1, 0)
        v3 = tf.where(v1 + v2 > 1, 1, 0)
        valueCut.append(v3)
    return valueCut
...