Как я могу преобразовать этот тензор в массив numpy? - PullRequest
0 голосов
/ 17 января 2020

Я бы хотел применить алгоритм PageRank к тензору x_attn. Но модуль nx.pagerank принимает только массивы numpy. Когда я пытаюсь преобразовать его в использование x_att.eval () , он говорит:

"tenorsflow. python .framework.errors_impl.InvalidArgumentError: Вы должны указать значение для тензора заполнителя 'main_input_5' с dtype float и shape [?, 6600] ".

Может кто-нибудь помочь мне?

def variable_attn_15jan():


    input_dim=input_dim_func()

    main_input = Input(shape=(input_dim,),name='main_input')

    inputs_w1=Lambda(lambda x: x[:,0:3300])(main_input)  
    inputs_w2=Lambda(lambda x: x[:,3300:6600])(main_input) 


    x1_attn= Dense(11, activation='softmax')(inputs_w1)
    x2_attn= Dense(11, activation='softmax')(inputs_w2)


    list_x_att1=[]
    list_x_att2=[]

    for i in range(11) :
        val_scalar=Lambda(lambda x: x[:,i:(i+1)])(x1_attn)
        list_x_att1.append(Lambda(lambda x: x[:,(i*300):(i+1)*300]*val_scalar)(inputs_w1))
    x_att1 = concatenate(list_x_att1)

    for i in range(11) :
        val_scalar=Lambda(lambda x: x[:,i:(i+1)])(x2_attn)
        list_x_att2.append(Lambda(lambda x: x[:,(i*300):(i+1)*300]*val_scalar)(inputs_w2))
    x_att2 = concatenate(list_x_att2)

    x_att = concatenate([x_att1,x_att2])


1 Ответ

0 голосов
/ 17 января 2020

На вашем тензоре (v2.0):

npa = tf.numpy()

, где npa будет вашим numpy именем массива.

В качестве альтернативы, тензор (

npa=tf.eval()
print(type(npa))

Обновление 1:

Используйте приведенный ниже код, чтобы проверить, какой тип массивов у вас есть. Смотрите также комментарий от rkern с комментариями здесь 14 июля 2019 года.

type(tf)

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