Линейная регрессия с несколькими функциями - Как сделать прогноз после обучения нейронной сети с использованием массива - PullRequest
1 голос
/ 25 апреля 2020

Я разработал модель искусственных нейронных сетей, следуя приведенному здесь уроку: https://www.tensorflow.org/tutorials/keras/regression

Впоследствии я сохранил модель с помощью model.save () и попытался загрузить ее в другой ноутбук, потому что именно так я ожидаю, что люди используют обученные модели (импортируя их). Также я пытаюсь разработать код, который позволяет мне предсказывать любое количество значений, которые я хочу (6, 7, 8, 2, что угодно), поэтому я пытаюсь получить эти данные предсказания в массив, чтобы передать их в model_predict ,

Я пытался сделать простое предсказание, но каждый раз терпел неудачу. Как использовать model.predict () в подобных ситуациях?

Вот код, который я пытался использовать:

import pandas as pd
from sklearn import datasets
import tensorflow as tf
import itertools

model = tf.keras.models.load_model('MPG_Model.model')

prediction_input = {
    'Cylinders' : [4],
    'Displacement' : [140.0],
    'Horsepower' : [86.0],
    'Weight' : [2790.0],
    'Acceleration' : [15.6],
    'Model Year' : [82],
    'Origin' : [1],
}

dataset = tf.convert_to_tensor(prediction_input)
predictions = model.predict(dataset).flatten()

Возвращает следующее сообщение об ошибке:

ValueError: Attempt to convert a value ({'Cylinders': [4], 'Displacement': [140.0], 'Horsepower': [86.0], 'Weight': [2790.0], 'Acceleration': [15.6], 'Model Year': [82], 'Origin': [1]}) with an unsupported type (<class 'dict'>) to a Tensor.

Что мне делать?

1 Ответ

0 голосов
/ 27 апреля 2020

Ошибка, которую вы описываете в своем комментарии, возникает из-за того, что ваша модель ожидает ввод размера (9, n), где 'n' - это количество точек данных, в которые вы вводите данные - поэтому оно говорит, что ожидается (9,). Но когда вы вводите данные, пытаясь предсказать, на самом деле это вектор размера 9, который в двух измерениях равен (1, 9) - вот почему он говорит, что получает (1,). Вы можете исправить это, изменив входные данные с (1, 9) на (9, 1). Сделайте это непосредственно перед вызовом метода predict():

dataset = tf.reshape(dataset, [9, 1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...