AttributeError: у объекта 'DType' нет атрибута 'type' Tensorflow Serving - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь использовать функцию (из другого модуля) в тензорном потоке. Функция принимает массив NumPy и возвращает точки изменения. Моя главная цель - развернуть эту модель на службе tenorflow. Я сталкиваюсь с ошибкой

AttributeError: у объекта 'DType' нет атрибута 'type'

Есть 2 функции: одна - create_data (), которая создает массив numpy и возвращает его, другая - change (), которая принимает массив numpy и использует ранее упомянутую функцию для возврата точек изменения. Я создал заполнитель для приема входных данных, операцию для выполнения функции. Проблема в том, что если я пытаюсь отправить данные через заполнитель, я сталкиваюсь с ошибкой. Если я отправляю данные непосредственно в функцию, она запускается. Ниже мой код.

def create_data():
    np.random.seed(0)
    size = 100
    mean_a = 0.0
    mean_b = 10.0
    mean_c = 0
    var = 0.1
    data_a = np.random.normal(mean_a, var, size)
    data_b = np.random.normal(mean_b, var, size)
    data_c = np.random.normal(mean_c, var, size)
    data = np.concatenate([data_a, data_b, data_c])
    return data

def change(data):
    # what else i tried
    # data = np.array(data, dtype=np.float)
    # above line gives another error mentioned after code 
    cpts = (pelt(normal_mean(x, np.var(x)), len(x)))
    return cpts

sess = tf.Session()
x = tf.placeholder(tf.float32, shape=[300, ], name="myInput")
y = tf.convert_to_tensor(change(x),np.float32,name="myOutput")
z = sess.run(y,feed_dict={x:create_data()})

Если я попробую код data = np.array(data, dtype=np.float) в функции change (), это выдаст мне ошибку

ValueError: установка элемента массива с последовательностью.

Я также пытался data = np.hstack((data)).astype(np.float) и data = np.vstack((data)).astype(np.float), но он сталкивается с отдельной ошибкой, которая говорит использовать tf.map_fn. Я также попытался использовать tf.eval () для преобразования чисел, но не смог заставить их работать внутри функции с заполнителями.

Но если я отправлю вывод напрямую,

y = tf.convert_to_tensor(change(create_data()),np.float32,name="myOutput")

Это работает.

Как мне отправить вход, чтобы он работал?

РЕДАКТИРОВАТЬ: рассматриваемая функция это , если кто-то хочет знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...