В настоящее время я работаю над созданием классификатора изображений с использованием стеганографии.Но созданная мной модель (основанная на этой модели) не меняет своей точности и потерь.
Я создал свой собственный набор данных.Мой набор данных тестирования содержит ~ 4000 изображений каждого стеганографического алгоритма, которые F5, outguess, jsteg плюс 4000 изображений без каких-либо стеганографических материалов внутри, имеющих в общей сложности 10000 изображений.Изображения со стеганографией содержат только текст внутри «это секретное сообщение» .Все изображения имеют размер 512x512 и размер.
Вот как я создал свою модель
def createModel(self):
self.model = Sequential()
self.model.add(Conv2D(3,(3,3), input_shape=(self.IMAGE_SIZE,self.IMAGE_SIZE,3)))
self.model.add(Activation('relu'))
self.model.add(Conv2D(64,(509,509)))
self.model.add(Activation('relu'))
self.model.add(Flatten())
# self.model.add(Dropout(0.4))
# self.model.add(Dense(512, activation='relu'))
self.model.add(Dense(3, activation='softmax'))
, и вот как я тренируюсь
def trainModel(self):
X_train,y_train = self.getTrainingData()
X_test,y_test = self.getTestingData()
run_opts = tf.RunOptions(report_tensor_allocations_upon_oom = True)
self.model.compile(loss=keras.losses.categorical_crossentropy,
optimizer='sgd',
metrics=['accuracy'], options = run_opts)
self.model.fit(
X_train,
y_train,
batch_size=1,
validation_data=(X_test, y_test),
epochs=5)
self.model.summary()
score = self.model.evaluate(X_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
Что я уже пробовал:
- Увеличьте эпох и batch_size
- измените оптимизатор с Адам до sgd
- изменить скорость обучения
- увеличить количество ядер
- изменить активацию (с relu *От 1039 * до tanh до relu )
- добавьте плотный слой от 64 до 254 до 512, затем закомментируйте его
Яиспользуя python 3.5.2 , тензор потока 1.15.0 , ubuntu 16.04 , керат 2.2.4
пожалуйста, помогитемне.Мне нужно это для моего проекта.
вот мой репозиторий , который содержит набор данных плюс весь код
Нажмите , чтобы увидеть изображение модели.summary А вот один из итоговых выводов
----------------------------------------------------------------------
______________________________________________________________________
Layer (type) Output Shape Param #
======================================================================
conv2d_1 (Conv2D) (None, 510, 510, 3) 84
______________________________________________________________________
activation_1 (Activation) (None, 510, 510, 3) 0
______________________________________________________________________
conv2d_2 (Conv2D) (None, 2, 2, 64) 49743616
______________________________________________________________________
activation_1 (Activation) (None, 2, 2, 64) 0
______________________________________________________________________
flatten_1 (Flatten) (None, 256) 0
______________________________________________________________________
dropout_1 (Dropout) (None, 256) 0
______________________________________________________________________
dense_1 (Dense) (None, 512) 131584
______________________________________________________________________
dense_2 (Dense) (None, 3) 1539
======================================================================
Total params: 49,876,823
Trainable params: 49,876,823
Non-trainable params: 0
______________________________________________________________________