ValueError: Tensor («Placeholder: 0», shape = (), dtype = float32) должен быть из того же графика, что и Tensor («total: 0», shape = (), dtype = resource) - PullRequest
0 голосов
/ 01 марта 2019

Я построил трехслойную нейронную сеть, чтобы предсказать правильное имя столбца на основе его содержимого.Модель отлично работает на tenorflow 1.12;он даже развернут и работает в производственном режиме прямо сейчас.

Однако, когда мы попытались запустить тот же сервис с tenorflow 1.13, он сломался со следующей ошибкой.

127.0.0.1 - -[28 / Feb / 2019 16:28:15] "[1m [35mPOST / 999 / qqq / upload_to_column_check HTTP / 1.1 [0m» 500 - трассировка (последний вызов был последним): файл "C: \ ProgramData \ Anaconda3 \ lib \"site-packages \ flask \ app.py ", строка 1997, в вызов , возврат self.wsgi_app (environment, start_response) Файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ flask \ app.py ", строка 1985, в ответе wsgi_app = self.handle_exception (e) Файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ flask \ app.py ", строка 1540, в регенерировании handle_exception (exc_type, exc_value, tb) Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ flask_compat.py", строка 33, для повышения значения файла "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ flask \ app.py",строка 1982, в ответе wsgi_app = self.full_dispatch_request () Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ flask"\ app.py ", строка 1614, в full_dispatch_request rv = self.handle_user_exception (e) Файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ flask \ app.py ", строка 1517, в регенерировании handle_user_exception (exc_type,exc_value, tb) Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ flask_compat.py", строка 33, в ререйзе поднимите значение Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ flask \ app.py ", строка 1612, в файле full_dispatch_request rv = self.dispatch_request ()" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ flask \ app.py ", строка 1598, в dispatch_request вернуть файл self.view_functionsrule.endpoint"C: \ Users \ Matt Casey \ iqm \ iqmpolisegments-datarecievers-columnnames \ api_service.py ", строка 231, в файле upload_then_columns name_dict, conf = cp.predict_based_on_header_and_list (ColName, ColVals), файл" C: \ Users \ Matt "iqmpolisegments-datarecievers-columnnames \ header_service_core.py ", строка 299, в Foregnit_based_on_header_and_list lpreds = self.predict_based_on_list (initial, arr_only = True) Файл" C: \ Users \ Matt Case "y \ iqm \ iqmpolisegments-datarecievers-columnnames \ header_service_core.py ", строка 237, в предикате предиката_refred_onsed_on_list preds = self.classifier.predict (векторизованный), файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ensorflow \ python \ keras "\ engine \ training.py ", строка 1113, в поле« Предсказать себя », x, batch_size = batch_size, verbose = verbose, steps = steps) Файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ tenorflow \ python \ keras \ "engine \ training_arrays.py ", строка 251, в model_iteration model.reset_metrics () Файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ tenorflow \ python \ keras \ engine \ training.py ", строка 1119, в reset_metricsm.reset_states () Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ tenorflow \ python \ keras \ metrics.py", строка 460, в reset_states K.set_value (v, 0) Файл "C: \ ProgramData\ Anaconda3 \ lib \ site-packages \ tenorflow \ python \ keras \ backend.py ", строка 2844, в set_value assign_op = x.assign (assign_placeholder) Файл" C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ tenorsflow \питон \ OPS \ resource_variable_ops.py»,строка 917, в присвоении self.handle, value_tensor, name = name) Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ tenorflow \ python \ ops \ gen_resource_variable_ops.py", строка 186, в assign_variable_op "AssignVariableOp",ресурс = ресурс, значение = значение, имя = имя) Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ensorflow \ python \ framework \ op_def_library.py", строка 350, в _apply_op_helper g = ops._get_graph_from_inputs (_Flatten(words.values ​​())) Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ tenorflow \ python \ framework \ ops.py", строка 5713, в _get_graph_from_inputs_assert_same_graph (original_graph_element, graph_element) Файл "C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ensorflow \ python \ framework \ ops.py", строка 5649, в _assert_same_graph original_item)) ValueError: Тензор ("Заполнитель: 0",shape = (), dtype = float32) должен быть из того же графа, что и Tensor ("total: 0", shape = (), dtype = resource).

Мне не удалось понять смыслэтот.Итак, я потянул объект в блокнот Jupyter для устранения неполадок.За исключением случаев, когда я делаю, ошибка исчезает, и она работает нормально.

Следующий код должен быть соответствующим:

def predict_based_on_list(self, initial, arr_only = False):
    """
    Initial:
        str in list form, values separated by '|'
        OR a list of strings. The strings should all be values from the
        same column of a spreadsheet

    returns:
        np.array, the output of the neural network with shape (1, len(headers)).
        Each entry in the array represents affinity for a particular column
        the higher the value, the closer the affinity.
    """
    conf_array = np.zeros((1, len(self.headers)))
    if type(initial) == str:
        vals = initial.split('|')
        print('in split', vals)
    else:
        vals = initial
        print('in = initial', vals)
    rows = len(vals)
    vectorized = [self.convert_val_to_metadata(val) for val in vals]
    vectorized = pd.DataFrame(vectorized)
    vectorized.fillna(0, inplace=True)

    vectorized = np.array(vectorized, dtype='float64')

    preds = self.classifier.predict(vectorized)

    avgs = preds.sum(axis=0) / len(vals)

    return avgs

Если у вас есть какие-нибудь блестящие идеи, я хотел бы услышатьих.Я сбит с толку.

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