#python #conv-neural-network
#python #conv-neural-network
Вопрос:
У меня есть NN, который я хотел бы использовать здесь:
model = keras.models.Sequential([
keras.layers.Conv2d(64, 7, activation="relu", padding="same",
input_shape = [40, 40, 1]),
keras.layers.MaxPooling2D(2),
keras.layers.Conv2D(128, 3, activation="relu", padding="same"),
keras.layers.Conv2D(128, 3, activation="relu", padding="same"),
keras.layers.MaxPooling2D(2),
keras.layers.Conv2D(256, 3, activation="relu", padding="same"),
keras.layers.Conv2D(256, 3, activation="relu", padding="same"),
keras.layers.MaxPooling2D(2),
keras.layers.Flatten(),
keras.layers.Dense(128, activation="relu"),
keras.layers.Dropout(0.5)
keras.layers.Dense(64, activation="relu"),
keras.layers.Dropout(0.5)
keras.layers.Dense(8, activation="softmax")
])
Но я не уверен, как настроить разделение поездов / тестов для этого.. У меня есть фрейм данных со столбцами:
df['matrices']
df['class']
Существует 25 тыс. экземпляров, поэтому 25 тыс. матриц, а затем 8 «типов» матриц, где элементы матриц создают различные формы при просмотре в виде изображения. Каждая матрица имеет соответствующий тип, индексируемый в столбце ‘class’. Каждый из них представляет собой матричный массив размером 40×40 типа uint8 и не имеет глубины. Все элементы матрицы равны 0, 1 или 2.
Таким образом, форма ввода NN правильно равна 40x40x1, но сейчас я в недоумении, как настроить ее с помощью имеющейся у меня информации.
Ответ №1:
Этот ответ довольно прост и предназначен только для того, чтобы вы начали. Существует гораздо больше возможностей для обучения и тестирования модели, а также подготовки данных для обучения.
Чтобы разделить данные, обучить и протестировать модель, вы могли бы сделать что-то вроде этого:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(df['matrices], df['class'], random_state=42, test_size=.2)
model.fit(x=X_train, y=y_train)
random_state делает ваше разделение данных воспроизводимым для будущих экспериментов.
Вы можете рассмотреть возможность масштабирования ваших матриц до значений от 0 до 1.
Возможно, вам потребуется проверить параметры batch_size, epochs и обратных вызовов в методе .fit в соответствии с вашим приложением и спецификациями оборудования.Модель Tensorflow.подходящая документация
Вы можете протестировать модель, используя разделение тестов из ваших данных:
model.evaluate(x=X_test, y=y_test)
Это возвращает значение потерь и значения показателей для модели в тестовом режиме.