“SparseTensor”对象不可下标 keras

Mar*_*dez 8 python keras tensorflow

在学习机器学习之后,我现在在神经网络中,我有一个作业 - 文本分类 - 使用神经网络。

下面,我将展示到目前为止我所拥有的

  1. 处理数据
  2. 计数器矢量化器

现在我正在尝试编译 NN 但是我收到以下错误

TypeError:“SparseTensor”对象不可下标回溯(最近一次调用最后一次):文件“/opt/conda/lib/python3.7/site-packages/tensorflow/python/ops/script_ops.py”,第 242 行,调用 return func(device, token, args) 文件“/opt/conda/lib/python3.7/site-packages/tensorflow/python/ops/script_ops.py”,第 131 行,调用中

我的数据形状如下

X_train.shape = (17621, 8014)

type(X_train) = scipy.sparse.csr.csr_matrix
Run Code Online (Sandbox Code Playgroud)

该模型

model = Sequential()
model.add(Dense(1015, input_shape=(17621, 8014) , activation = 'relu'))
model.add(Dense(5, activation = 'sigmoid'))
model.add(Dense(1,activation='sigmoid'))
model.compile(loss = 'binary_crossentropy',metrics = ['accuracy'], optimizer = 'adam')
model.fit(x=X_train, y=y_train,epochs=500,batch_size=125,
          validation_data=(X_test,y_test))
Run Code Online (Sandbox Code Playgroud)

另外,我还有2个问题

  1. input_shape ~ input_dimension 之间有什么区别?
  2. 当我添加第一层时。我应该设置多少个感知器?
  3. 最重要的是我做错了什么?

欢迎大家多提建议

小智 5

Keras 无法使用 csr_matrix。转换为 numpy 数组。

X_train = X_train.toarray()
Run Code Online (Sandbox Code Playgroud)