#python #python-3.x #tensorflow #keras #deep-learning
#python #python-3.x #тензорный поток #keras #глубокое обучение
Вопрос:
это моя модель с использованием conv1d
модель имеет класс 5000 итак, как я могу создавать слои с помощью tensorflow или keras, если я увеличиваю время загрузки и зависания моей системы. здесь я применил adam optimizer и функцию потери mean_square_error, поэтому я получил очень низкий уровень точности. как я могу это исправить «‘ epochs = 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))
»’
Комментарии:
1. привет, не могли бы вы указать размер входных данных, пожалуйста? И что это за данные, что вы пытаетесь предсказать?
2. Запишите более подробную информацию о ваших данных. Одно из предложений — удалить все операторы печати и использовать model.summary(), чтобы получить слои модели и количество параметров в каждом слое с формами входных и выходных данных. model.summary() будет очень полезен. Что касается функции потерь, используйте категориальную кроссэнтропию для многоклассовой классификации. Для более чем 5000 классов убедитесь, что у вас достаточно данных, чтобы получить достойную точность.
3. Я извлек данные из изображений. набор данных содержит 128 столбцов и 16000 строк
Ответ №1:
вы должны активировать свой последний слой с помощью функции типа softmax
(лучший выбор для классификации muli). Как сказано в комментариях, categorical_crossentropy
в вашем случае лучше использовать функцию потерь, если ваши метки закодированы одним нажатием (если не используются sparse_categorical_crossentropy
).
Комментарии:
1. Последний слой я использовал как softmax, а функцию потерь — как categorical_crossentropy в этом случае я получил меньшее количество потерь, но точность не улучшилась. если я попытаюсь увеличить размер слоев и размер пакета, у системы возникнут проблемы
2. Я думаю, что проблема возникает из
y_train_binary
иy_test_binary
, пожалуйста, предоставьте дополнительную информацию и отредактируйте свой вопрос