TypeError: невозможно перебрать тензор с неизвестным первым измерением

Получение следующей ошибки при выполнении приведенного ниже кода:

TypeError: невозможно перебрать тензор с неизвестным первым измерением.

Как это решить? Ошибка в строке output_gcn = gcn(input_layer)

Я попытался изменить форму input_layer, но это не сработало.

В чем проблема и как ее решить?

Пожалуйста, дайте мне знать решение как можно раньше, так как я занимаюсь чем-то другим, помимо обучения, и у меня есть сроки, которые нужно уложиться.

      import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
from stellargraph.data import UniformRandomWalk
#from stellargraph.layer import GCN
from stellargraph import StellarGraph
from tensorflow.keras import layers, Model, optimizers
from stellargraph.mapper import FullBatchNodeGenerator
from stellargraph.layer import GCN
from stellargraph.layer import node2vec
from stellargraph import StellarGraph
#from stellargraph.draw import draw
#generator = PaddedGraphGenerator(graphs=graphs)`


pro_tweets = pprocess[0:10000]

labels = df_encoded[['label_mild', 'label_moderate', 'label_non-depressed',     
'label_severe']]
np.array(labels)

vectorizer = TfidfVectorizer()
vectors = vectorizer.fit_transform(pro_tweets)
#print(vectors)
print(vectors.shape)


similarity_matrix = cosine_similarity(vectors)


adj_matrix = np.zeros(similarity_matrix.shape)
adj_matrix[similarity_matrix > 0] = similarity_matrix[similarity_matrix > 0]
#print(adj_matrix)
#print(adj_matrix.shape[0])


graph = StellarGraph(adj_matrix, node_features=vectors)



rw = UniformRandomWalk(graph)
walks = rw.run(nodes=list(range(adj_matrix.shape[0])), length=5, n=1)


gcn = GCN(layer_sizes=[32, 16], activations=["relu", "relu"], generator =      
FullBatchNodeGenerator(graph, method="gcn"))

#input_layer = GCN.get_input_layer(graph)

input_layer = layers.Input(shape = (vectors.shape[1],), dtype="float32", name="input")

print(input_layer.shape)
print(input_layer)

#reshaped_input_layer = tf.reshape(input_layer, [vectors.shape[1],])

import tensorflow as tf


output_gcn = gcn(input_layer)


#input_layer = layers.Input(shape=(adj_matrix.shape[0],adj_matrix.shape[1]),      
dtype="int32", name="input")
#output_layer = gcn(input_layer)


output_embedding = node2vec(output_dim=16)(output_gcn)


dense_layer = layers.Dense(16, activation="relu")(output_embedding)

output_layer = layers.Dense(4, activation="softmax")(dense_layer)

'''create the final dense layer
  dense_layer = layers.Dense(16, activation="relu")(output_layer)


output_layer = layers.Dense(1, activation="sigmoid")(dense_layer)'''


model = Model(inputs=input_layer, outputs=output_layer)


model.compile(optimizer=optimizers.Adam(lr=0.01), loss="binary_crossentropy", metrics=   
["acc"])

X_train, X_test, y_train, y_test = train_test_split(walks, labels, test_size=0.2,     
random_state=42)


model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=50)


test_predictions = model.predict(X_test)


test_predictions = np.round(test_predictions)


accuracy = (test_predictions == y_test).mean()
print("Accuracy: {:.4f}".format(accuracy))


train_predictions = model.predict(X_train)


train_predictions = np.round(train_predictions)


accuracy = (train_predictions == y_train).mean()
print("Accuracy: {:.4f}".format(accuracy))]

0 ответов

Другие вопросы по тегам