Использовать уже обученную нейронную сеть? - PullRequest
0 голосов
/ 04 июня 2019

У меня есть уже обученная нейронная сеть, состоящая из файлов NNbiases_b1.csv, NNbiases_out.csv, NNweights_h1.csv и NNweights_out.csv.Размеры входного и выходного слоев также известны.

Теперь я ищу сценарий Python, который использует эту нейронную сеть, т.е. выводит данные, зависящие от входных данных и обученной сети.

Но всякий раз, когдаЯ пытаюсь найти соответствующий сценарий и нахожу только инструкции и объяснения по обучению сети!

Итак, мой вопрос: когда у меня уже есть обученная сеть с данными / файлами выше: как я могу использовать эту нейронную сеть?

Спасибо!

1 Ответ

2 голосов
/ 04 июня 2019

Я думаю, вам нужно восстановить архитектуру вашей модели, а затем вручную установить вес каждого слоя следующим образом:

all_weights = []
NNweights_h1 = [...] #load your csv of weights
NNbiases_b1 = [...] #load your csv of biases

all_weights.append(NNweights_h1)
all_weights.append(NNbiases_b1)

model.layers[i].set_weights(all_weights)

И сделать это для всех ваших слоев.

Обновление после точности

Чтобы использовать вашу модель (фиктивный пример):

  • Перестройте архитектуру:

    def model(model_input):
    
    
        x = Dense(12, input_dim=8, activation='relu')(model_input)
        x = Dense(1, activation='sigmoid')(x)
    
        model = Model(model_input, x, name='Your_model')
    
        return model
    
  • Определите это:

    X_test = [...] #load your data
    input_shape = [...] #your test data shape
    model_input = Input(shape=input_shape)
    model = model(model_input)
    
  • Вручную установите вес с помощью кода в начале ответа

  • Используйте эту модель для прогнозирования ваших данных:

    prediction = model.predict(X_test)  #get the predictions of your model 
    

Надеюсь, это поможет вам!

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