【问题标题】:InvalidArgumentError: indices[3] = [0,2917] is out of order. Many sparse ops require sorted indicesInvalidArgumentError: indices[3] = [0,2917] 出现故障。许多稀疏操作需要排序索引
【发布时间】:2021-03-17 23:47:27
【问题描述】:

我正面临以下错误::

InvalidArgumentError: indices[3] = [0,2917] 出现故障。许多稀疏操作需要排序索引。 使用tf.sparse.reorder 创建一个正确排序的副本。 我不确定如何解决该错误。我尝试了重新排序方法,但不起作用

下面是代码::

def score_transform(X):
    y_reshaped = np.reshape(X['rating'].values, (-1, 1))
    for index, val in enumerate(y_reshaped):
        if val >= 8:
            y_reshaped[index] = 1
        elif val >= 5:
            y_reshaped[index] = 2
        else:
            y_reshaped[index] = 0
    y_result = to_categorical(y_reshaped)
    return y_result
    

def convert_sparse_matrix_to_sparse_tensor(X):
    coo = X.tocoo()
    indices = np.mat([coo.row, coo.col]).transpose()
    return tf.sparse.reorder(tf.SparseTensor(indices, coo.data, coo.shape))


df_train = pd.read_csv("/content/drive/MyDrive/NLP_Prj/drugsComTrain_raw.csv", parse_dates=["date"])
df_test = pd.read_csv("/content/drive/MyDrive/NLP_Prj/drugsComTest_raw 2.csv", parse_dates=["date"])

df_train, df_test = train_test_split(df_all, test_size=0.33, random_state=42) 

X_train=(df_train['review_clean'].to_numpy())
X_test=(df_test['review_clean'].to_numpy())

test_train = np.concatenate([X_train, X_test])

X_onehot = vectorizer.fit_transform(test_train)
X_onehot1=convert_sparse_matrix_to_sparse_tensor(X_onehot)

#Model

model = keras.models.Sequential()

model.add(keras.layers.Dense(200, input_dim=len(vectorizer.get_feature_names())))
model.add(keras.layers.BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.Dropout(0.5))

model.add(keras.layers.Dense(300))
model.add(keras.layers.BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.Dropout(0.5))

model.add(keras.layers.Dense(256, activation='relu'))
model.add(keras.layers.Dense(3, activation='softmax'))


model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])


hist = model.fit(X_onehot1, y_train1, epochs=10, batch_size=128,verbose=1, validation_data=(X_onehot[157382:157482], y_train1[157382:157482]))

如何解决这个问题?

【问题讨论】:

    标签: python tensorflow tensorflow2.0 z-index sparse-matrix


    【解决方案1】:

    这个错误主要是由于tensorflow和keras版本不匹配造成的。 不要直接做import tensorflow之类的

    import tensorflow as tf
    

    当我使用下面的行时,错误已修复。我可以训练模型。 而是使用以下代码行:

    import tensorflow.python.keras.backend as K 
    sess = K.get_session()
    

    【讨论】:

      猜你喜欢
      • 2020-09-09
      • 2021-03-12
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-03
      相关资源
      最近更新 更多