Я следовал руководству по классификатору изображений с использованием Python и Tensorflow.
Сейчас я пытаюсь применить глубокое обучение к пользовательской ситуации.Я сделал программу симуляции продавцов / покупателей, где покупатели покупают камень по его желанию.Камни имеют цвет, размер и процент кривой.Чем ближе к клиенту желает ценить камень, тем больше клиент может заплатить.Для продавца чем реже камень, тем выше должна быть цена.Затем программа генерирует 100 000 покупок камня для питания нейронной сети, которая будет пытаться побить других продавцов.Набор данных выглядит так:
Я сейчас пытаюсь создать свою нейронную сеть.В этом уроке он использует два слоя Conv2D с функцией активации relu и MaxPooling2D, затем слой Flatten, плотный слой и, наконец, еще один плотный слой с функцией активации сигмоида.
После прочтения некоторой документации яобнаружил, что слой Conv2D предназначен для матрицы, но мои данные уже плоские, поэтому я предпочитаю использовать только плотные слои.
Мой первый вопрос: нужен ли моей нейронной сети плотный слой с функцией relu, подобной этой?:
model.add(Dense(64, activation='relu', input_dim(3)))
Если моя программа генерирует только положительные значения?
Мой второй вопрос: нужна ли моей нейронной сети сигмоидальная функция, если я уже нормализовал свои данные, чтобы сделать их между 0 и 1разделив их так?:
X[:,0] /= 256.0
X[:,1] /= 50.0
X[:,2] /= 100.0
Эти значения являются максимальными значениями для каждого столбца.Так нужна ли мне сигмовидная функция?
На самом деле моя нейронная сеть выглядит так:
model = Sequential()
model.add(Dense(64, activation='relu', input_dim(3)))
model.add(Dense(64, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
Но я не совсем понимаю эффективность моей модели.Может ли моя нейронная сеть работать?Если нет, то какие слои и функции активации я должен использовать?