Конвертировать модель нейронной сети Convnet.js в Keras Tensorflow - PullRequest
1 голос
/ 19 марта 2019

У меня есть модель нейронной сети, созданная в convnet.js, которую я должен определить с помощью Keras.У кого-нибудь есть идеи, как я могу это сделать?

neural = {
          net : new convnetjs.Net(),
          layer_defs : [
            {type:'input', out_sx:4, out_sy:4, out_depth:1},
            {type:'fc', num_neurons:25, activation:"regression"},
            {type:'regression', num_neurons:5}
          ],
          neuralDepth: 1
      }

Это то, что я мог сделать до сих пор.Я не могу быть уверен, что это правильно.

   #---Build Model-----
    model = models.Sequential()
    # Input - Layer 
    model.add(layers.Dense(4, activation = "relu", input_shape=(4,)))  
    # Hidden - Layers 
    model.add(layers.Dense(25, activation = "relu")) 
    model.add(layers.Dense(5, activation = "relu"))
    # Output- Layer
    model.add(layers.Dense(1, activation = "linear")) 
    model.summary()
    # Compile Model
    model.compile(loss= "mean_squared_error" , optimizer="adam", metrics=["mean_squared_error"])

1 Ответ

1 голос
/ 27 марта 2019

Из документа Convnet.js: «Ваш последний уровень должен быть слоем потерь (« softmax »или« svm »для классификации или« регрессия »для регрессии).» Также: «Создайте слой регрессии, который берет список целей (произвольные числа, не обязательно одну метку отдельного класса, как в softmax / svm) и поддерживает потерю L2».

Неясно. Я подозреваю, что слой «регрессии» - это просто еще один слой плотных (полностью связанных) нейронов. Слово «регресс», вероятно, относится к линейной активности. Так что, на этот раз нет «relu»?

В любом случае, это будет выглядеть примерно так (без последовательного режима):

from keras.layers import Dense
from keras.models import Model
my_input = Input(shape = (4, ))
x = Dense(25, activation='relu')(x)
x = Dense(4)(x)
my_model = Model(input=my_input, output=x, loss='mse', metrics='mse')
my_model.compile(optimizer=Adam(LEARNING_RATE), loss='binary_crossentropy', metrics=['mse'])

После прочтения небольшого количества документов файл convnet.js кажется хорошим проектом. Было бы намного лучше, если бы кто-то обладал знаниями в области нейронных сетей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...