【问题标题】:i have a problem while using cnn to classify more then 10000 class. how can i solve it?我在使用 cnn 对超过 10000 个类别进行分类时遇到问题。我该如何解决?
【发布时间】:2021-03-22 13:45:42
【问题描述】:

这是我使用 conv1d 的模型

模型有一个 5000 类所以,我如何使用 tensorflow 或 keras 创建图层 如果我增加 epoch,我的系统就会被加载并挂起。在这里我应用了亚当优化器和 mean_square_error 损失函数,所以我得到了非常低的精度。我该如何解决 ''' 时代 = 3 batch_size = 35

model = Sequential()
print(x_train.shape[1],1)
                                
model.add(Conv1D(16, 3, padding='same', activation='relu', input_shape=(128,1)))#x.shape[1:])) # Input shape: (96, 96, 1)
model.add(MaxPooling1D(pool_size=1))
                              
model.add(Conv1D(32, 3, padding='same', activation='relu'))
model.add(MaxPooling1D(pool_size=1))
model.add(Dropout(0.25))                            
model.add(Conv1D(64, 3, padding='same', activation='relu'))
model.add(MaxPooling1D(pool_size=1))                             
model.add(Conv1D(128, 3, padding='same', activation='relu'))
model.add(MaxPooling1D(pool_size=1))                             
model.add(Conv1D(256, 3, padding='same', activation='relu'))
model.add(MaxPooling1D(pool_size=1))                             
# Convert all values to 1D array
model.add(Flatten())                             
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(5823))


##checkpointer = ModelCheckpoint(filepath='checkpoint1.hdf5', verbose=1, save_best_only=True)

# Complie Model
model.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])
history=model.fit(x_train, y_train_binary,
          batch_size=batch_size,
          epochs=epochs,
          verbose=1,
          validation_data=(x_test, y_test_binary))

'''

【问题讨论】:

  • 嗨,请问您能告诉输入的大小吗?这是什么类型的数据,你想预测什么?
  • 写下有关数据的更多详细信息。一个建议是删除所有打印语句并使用 model.summary() 来获取模型层和编号。每一层的参数与输入和输出数据的形状。 model.summary() 将非常有帮助。至于损失函数,使用分类交叉熵进行多类分类。对于 5000 多个课程,请确保您有足够的数据以获得不错的准确性。
  • 我是从图像中提取数据的。数据集有 128 列和 16000 行

标签: python python-3.x tensorflow keras deep-learning


【解决方案1】:

您必须使用softmax(muli 分类的最佳选择)之类的函数激活最后一层。如cmets中所说,最好使用损失函数 categorical_crossentropy 在您的情况下,如果您的标签是一次性编码的(如果不使用 sparse_categorical_crossentropy)。

【讨论】:

  • 我在最后一层尝试作为 softmax 和损失函数作为 categorical_crossentropy 在这种情况下,我得到的损失较少,但准确性没有提高。如果我尝试增加层大小和批量大小系统会遇到麻烦
  • 我认为问题来自y_train_binaryy_test_binary,请提供更多信息并编辑您的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
相关资源
最近更新 更多