Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tensorflow自动编码器稀疏数据_Python_Tensorflow_Sparse Matrix - Fatal编程技术网

Python Tensorflow自动编码器稀疏数据

Python Tensorflow自动编码器稀疏数据,python,tensorflow,sparse-matrix,Python,Tensorflow,Sparse Matrix,我目前正在调整我的代码,以便能够处理稀疏数据,我被这个自动编码器卡住了: model = keras.Sequential([ keras.Input(shape=(input_dim, 1), sparse=True), keras.layers.LSTM(outer_hidden_dim, activation='relu', return_sequences=True, kernel_regularizer=keras.regularizers.l2(0.00)),

我目前正在调整我的代码,以便能够处理稀疏数据,我被这个自动编码器卡住了:

model = keras.Sequential([
    keras.Input(shape=(input_dim, 1), sparse=True),
    keras.layers.LSTM(outer_hidden_dim, activation='relu', return_sequences=True, kernel_regularizer=keras.regularizers.l2(0.00)),
    keras.layers.LSTM(inner_hidden_dim, activation='relu', return_sequences=False),
    keras.layers.RepeatVector(training_data.shape[1]),
    keras.layers.LSTM(inner_hidden_dim, activation='relu', return_sequences=True),
    keras.layers.LSTM(outer_hidden_dim, activation='relu', return_sequences=True),
    keras.layers.TimeDistributed(keras.layers.Dense(input_dim))
  ])

model.compile(optimizer='adam', loss='mae')

model.fit(
  training_data,
  training_data,
  batch_size=batch_size, 
  shuffle=True,
  epochs=epochs,
  callbacks=[statistics, tensorboard_callback]
)
作为培训数据,我使用从COO矩阵创建的SparseTensor:

training_data = tf.sparse.reorder(tf.SparseTensor(
  indices=np.array([training_data.row, training_data.col]).T,
  values=training_data.data,
  dense_shape=training_data.shape
))
training_data = tf.sparse.reshape(training_data, [-1, 1, input_dim])
当我尝试运行此操作时,出现以下错误:

Failed to convert object of type <class 
'tensorflow.python.framework.sparse_tensor.SparseTensor'> to Tensor. Contents: 
SparseTensor(indices=Tensor("input_1/indices:0", shape=(None, 3), dtype=int64), 
values=Tensor("input_1/values:0", shape=(None,), dtype=float64), 
dense_shape=Tensor("input_1/shape:0", shape=(3,), dtype=int64)). Consider casting elements 
to a supported type.
无法将类型的对象转换为张量。内容:
SparseTensor(索引=张量(“输入1/索引:0”,形状=(无,3),数据类型=int64),
值=张量(“输入值1/值:0”,形状=(无),数据类型=浮点64),
密集形状=张量(“输入形状:0”,形状=(3,),数据类型=int64”)。考虑铸造元素
到受支持的类型。
我尝试使用自定义的训练循环;然而,我也得到了同样的错误。我可以在训练循环中加密每一批数据,但这会破坏我为什么要首先处理稀疏数据的目的。任何帮助都将不胜感激