Новичок пробует простой метод оценки ошибок линейного классификатора - PullRequest
0 голосов
/ 25 апреля 2020
  • версия TF 2
  • Я прочитал все учебники для начинающих и пробую свой собственный набор данных из пяти столбцов
  • Все данные имеют значения float32 и не имеют категориальных имен.
  • Я пытаюсь предсказать одно значение с плавающей точкой
  • Ошибка в методе поезда, и у моих данных нет пустых значений
  • Сначала я подумал, что это ошибка пути к файлу. Я хотел бы знать, как использовать относительные пути для каталога модели

  • Источник

    # -*- coding: utf-8 -*-
    """
    Created on Sat Apr  4 22:49:16 2020

    """
    #%% imports
    from __future__ import absolute_import, division, print_function, unicode_literals
    import os
    import sys
    from IPython import get_ipython
    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd
    import tensorflow as tf
    tf.keras.backend.set_floatx('float32')

    #%% load data
    CSV_COLUMN_NAMES = ['havg', 'tavg', 'ep', 'sp', 'ft']
    DFTRAIN = pd.read_csv("C:/src/python/small_train.csv", names=CSV_COLUMN_NAMES, header=0)
    DFEVAL = pd.read_csv("C:/src/python/small_test.csv", names=CSV_COLUMN_NAMES, header=0)
    #%% set label col
    Y_TRAIN = DFTRAIN.pop('ft')
    Y_EVAL = DFEVAL.pop('ft')
    # no category cols yet
    CATAGORICAL_COLUMNS = []
    NUMERIC_COLUMNS = ['havg', 'tavg', 'ep', 'sp']
    FEATURE_COLS = []
    for feature_name in CATAGORICAL_COLUMNS:
        vocabulary = DFTRAIN[feature_name].unique()
        FEATURE_COLS.append(
            tf.feature_column.categorical_column_with_vocabulary_list(feature_name, vocabulary)
            )
    for feature_name in NUMERIC_COLUMNS:
        FEATURE_COLS.append(tf.feature_column.numeric_column(feature_name, dtype=tf.float32))
    #%% set functions
    def make_input_fn(data_df, label_df, num_epochs=10, shuffle=True, batch_size=10):
        def input_function():
            d_s = tf.data.Dataset.from_tensor_slices((dict(data_df), label_df))
            if shuffle:
                d_s = d_s.shuffle(20)
            d_s = d_s.batch(batch_size).repeat(num_epochs)
            return d_s
        return input_function
    TRAIN_INPUT_FN = make_input_fn(DFTRAIN, Y_TRAIN)
    EVAL_INPUT_FN = make_input_fn(DFEVAL, Y_EVAL, num_epochs=1, shuffle=False)
    #%% make estimator
    LINEAR_EST = tf.estimator.LinearClassifier(feature_columns=FEATURE_COLS, model_dir='C:\src\python\output')
    #%% training
    # trouble here
    get_ipython().magic('clear')
    LINEAR_EST.train(TRAIN_INPUT_FN)
    #%% test results
    #get_ipython().magic('clear')
    #RESULT = LINEAR_EST.evaluate(EVAL_INPUT_FN)
    #print(FEATURE_COLS)
    #print(RESULT['accuracy'])
  • Полная ошибка

INFO:tensorflow:Calling model_fn.
WARNING:tensorflow:Layer linear/linear_model is casting an input tensor from dtype float64 to the layer's dtype of float32, which is new behavior in TensorFlow 2.  The layer has dtype float32 because it's dtype defaults to floatx.

If you intended to run this layer in float32, you can safely ignore this warning. If in doubt, this warning is likely only an issue if you are porting a TensorFlow 1.X model to TensorFlow 2.

To change all layers to have dtype float64 by default, call `tf.keras.backend.set_floatx('float64')`. To change just this layer, pass dtype='float64' to the layer constructor. If you are the author of this layer, you can disable autocasting by passing autocast=False to the base Layer constructor.

INFO:tensorflow:Done calling model_fn.
INFO:tensorflow:Create CheckpointSaverHook.
INFO:tensorflow:Graph was finalized.
INFO:tensorflow:Restoring parameters from C:/src/python/output\model.ckpt-0
Traceback (most recent call last):

  File "....\lib\site-packages\tensorflow_core\python\client\session.py", line 1367, in _do_call
    return fn(*args)

  File "....\lib\site-packages\tensorflow_core\python\client\session.py", line 1352, in _run_fn
    target_list, run_metadata)

  File "....\lib\site-packages\tensorflow_core\python\client\session.py", line 1445, in _call_tf_sessionrun
    run_metadata)

NotFoundError: Key linear/linear_model/bias_weights not found in checkpoint
     [[{{node save/RestoreV2}}]]


During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 1290, in restore
    {self.saver_def.filename_tensor_name: save_path})

  File "....\lib\site-packages\tensorflow_core\python\client\session.py", line 960, in run
    run_metadata_ptr)

  File "....\lib\site-packages\tensorflow_core\python\client\session.py", line 1183, in _run
    feed_dict_tensor, options, run_metadata)

  File "....\lib\site-packages\tensorflow_core\python\client\session.py", line 1361, in _do_run
    run_metadata)

  File "....\lib\site-packages\tensorflow_core\python\client\session.py", line 1386, in _do_call
    raise type(e)(node_def, op, message)

NotFoundError: Key linear/linear_model/bias_weights not found in checkpoint
     [[node save/RestoreV2 (defined at ....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py:1493) ]]

Original stack trace for 'save/RestoreV2':
  File "....\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "....\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "....\lib\site-packages\spyder_kernels\console\__main__.py", line 11, in <module>
    start.main()
  File "....\lib\site-packages\spyder_kernels\console\start.py", line 319, in main
    kernel.start()
  File "....\lib\site-packages\ipykernel\kernelapp.py", line 583, in start
    self.io_loop.start()
  File "....\lib\site-packages\tornado\platform\asyncio.py", line 149, in start
    self.asyncio_loop.run_forever()
  File "....\lib\asyncio\base_events.py", line 541, in run_forever
    self._run_once()
  File "....\lib\asyncio\base_events.py", line 1786, in _run_once
    handle._run()
  File "....\lib\asyncio\events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "....\lib\site-packages\tornado\ioloop.py", line 690, in <lambda>
    lambda f: self._run_callback(functools.partial(callback, future))
  File "....\lib\site-packages\tornado\ioloop.py", line 743, in _run_callback
    ret = callback()
  File "....\lib\site-packages\tornado\gen.py", line 787, in inner
    self.run()
  File "....\lib\site-packages\tornado\gen.py", line 748, in run
    yielded = self.gen.send(value)
  File "....\lib\site-packages\ipykernel\kernelbase.py", line 361, in process_one
    yield gen.maybe_future(dispatch(*args))
  File "....\lib\site-packages\tornado\gen.py", line 209, in wrapper
    yielded = next(result)
  File "....\lib\site-packages\ipykernel\kernelbase.py", line 268, in dispatch_shell
    yield gen.maybe_future(handler(stream, idents, msg))
  File "....\lib\site-packages\tornado\gen.py", line 209, in wrapper
    yielded = next(result)
  File "....\lib\site-packages\ipykernel\kernelbase.py", line 541, in execute_request
    user_expressions, allow_stdin,
  File "....\lib\site-packages\tornado\gen.py", line 209, in wrapper
    yielded = next(result)
  File "....\lib\site-packages\ipykernel\ipkernel.py", line 300, in do_execute
    res = shell.run_cell(code, store_history=store_history, silent=silent)
  File "....\lib\site-packages\ipykernel\zmqshell.py", line 536, in run_cell
    return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
  File "....\lib\site-packages\IPython\core\interactiveshell.py", line 2858, in run_cell
    raw_cell, store_history, silent, shell_futures)
  File "....\lib\site-packages\IPython\core\interactiveshell.py", line 2886, in _run_cell
    return runner(coro)
  File "....\lib\site-packages\IPython\core\async_helpers.py", line 68, in _pseudo_sync_runner
    coro.send(None)
  File "....\lib\site-packages\IPython\core\interactiveshell.py", line 3063, in run_cell_async
    interactivity=interactivity, compiler=compiler, result=result)
  File "....\lib\site-packages\IPython\core\interactiveshell.py", line 3254, in run_ast_nodes
    if (await self.run_code(code, result,  async_=asy)):
  File "....\lib\site-packages\IPython\core\interactiveshell.py", line 3331, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-20-8bd19fd5c6c6>", line 1, in <module>
    runfile('C:/src/python/tf_linear.py', wdir='C:/src/python')
  File "....\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 562, in runfile
    exec_code(file_code, filename, ns_globals, ns_locals)
  File "....\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 463, in exec_code
    exec(compiled, ns_globals, ns_locals)
  File "C:\src\python\tf_linear.py", line 56, in <module>
    LINEAR_EST.train(TRAIN_INPUT_FN)
  File "....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py", line 374, in train
    loss = self._train_model(input_fn, hooks, saving_listeners)
  File "....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py", line 1164, in _train_model
    return self._train_model_default(input_fn, hooks, saving_listeners)
  File "....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py", line 1198, in _train_model_default
    saving_listeners)
  File "....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py", line 1493, in _train_with_estimator_spec
    log_step_count_steps=log_step_count_steps) as mon_sess:
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 604, in MonitoredTrainingSession
    stop_grace_period_secs=stop_grace_period_secs)
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 1038, in __init__
    stop_grace_period_secs=stop_grace_period_secs)
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 749, in __init__
    self._sess = _RecoverableSession(self._coordinated_creator)
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 1231, in __init__
    _WrappedSession.__init__(self, self._create_session())
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 1236, in _create_session
    return self._sess_creator.create_session()
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 902, in create_session
    self.tf_sess = self._session_creator.create_session()
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 660, in create_session
    self._scaffold.finalize()
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 243, in finalize
    self._saver.build()
  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 840, in build
    self._build(self._filename, build_save=True, build_restore=True)
  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 878, in _build
    build_restore=build_restore)
  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 502, in _build_internal
    restore_sequentially, reshape)
  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 381, in _AddShardedRestoreOps
    name="restore_shard"))
  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 328, in _AddRestoreOps
    restore_sequentially)
  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 575, in bulk_restore
    return io_ops.restore_v2(filename_tensor, names, slices, dtypes)
  File "....\lib\site-packages\tensorflow_core\python\ops\gen_io_ops.py", line 1505, in restore_v2
    name=name)
  File "....\lib\site-packages\tensorflow_core\python\framework\op_def_library.py", line 742, in _apply_op_helper
    attrs=attr_protos, op_def=op_def)
  File "....\lib\site-packages\tensorflow_core\python\framework\ops.py", line 3322, in _create_op_internal
    op_def=op_def)
  File "....\lib\site-packages\tensorflow_core\python\framework\ops.py", line 1756, in __init__
    self._traceback = tf_stack.extract_stack()



During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "....\lib\site-packages\tensorflow_core\python\training\py_checkpoint_reader.py", line 70, in get_tensor
    self, compat.as_bytes(tensor_str))

RuntimeError: Key _CHECKPOINTABLE_OBJECT_GRAPH not found in checkpoint


During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 1300, in restore
    names_to_keys = object_graph_key_mapping(save_path)

  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 1618, in object_graph_key_mapping
    object_graph_string = reader.get_tensor(trackable.OBJECT_GRAPH_PROTO_KEY)

  File "....\lib\site-packages\tensorflow_core\python\training\py_checkpoint_reader.py", line 74, in get_tensor
    error_translator(e)

  File "....\lib\site-packages\tensorflow_core\python\training\py_checkpoint_reader.py", line 35, in error_translator
    raise errors_impl.NotFoundError(None, None, error_message)

NotFoundError: Key _CHECKPOINTABLE_OBJECT_GRAPH not found in checkpoint


During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "C:\src\python\tf_linear.py", line 56, in <module>
    LINEAR_EST.train(TRAIN_INPUT_FN)

  File "....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py", line 374, in train
    loss = self._train_model(input_fn, hooks, saving_listeners)

  File "....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py", line 1164, in _train_model
    return self._train_model_default(input_fn, hooks, saving_listeners)

  File "....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py", line 1198, in _train_model_default
    saving_listeners)

  File "....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py", line 1493, in _train_with_estimator_spec
    log_step_count_steps=log_step_count_steps) as mon_sess:

  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 604, in MonitoredTrainingSession
    stop_grace_period_secs=stop_grace_period_secs)

  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 1038, in __init__
    stop_grace_period_secs=stop_grace_period_secs)

  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 749, in __init__
    self._sess = _RecoverableSession(self._coordinated_creator)

  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 1231, in __init__
    _WrappedSession.__init__(self, self._create_session())

  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 1236, in _create_session
    return self._sess_creator.create_session()

  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 902, in create_session
    self.tf_sess = self._session_creator.create_session()

  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 669, in create_session
    init_fn=self._scaffold.init_fn)

  File "....\lib\site-packages\tensorflow_core\python\training\session_manager.py", line 294, in prepare_session
    config=config)

  File "....\lib\site-packages\tensorflow_core\python\training\session_manager.py", line 224, in _restore_checkpoint
    saver.restore(sess, ckpt.model_checkpoint_path)

  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 1306, in restore
    err, "a Variable name or other graph key that is missing")

NotFoundError: Restoring from checkpoint failed. This is most likely due to a Variable name or other graph key that is missing from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:

Key linear/linear_model/bias_weights not found in checkpoint
     [[node save/RestoreV2 (defined at ....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py:1493) ]]

Original stack trace for 'save/RestoreV2':
  File "....\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "....\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "....\lib\site-packages\spyder_kernels\console\__main__.py", line 11, in <module>
    start.main()
  File "....\lib\site-packages\spyder_kernels\console\start.py", line 319, in main
    kernel.start()
  File "....\lib\site-packages\ipykernel\kernelapp.py", line 583, in start
    self.io_loop.start()
  File "....\lib\site-packages\tornado\platform\asyncio.py", line 149, in start
    self.asyncio_loop.run_forever()
  File "....\lib\asyncio\base_events.py", line 541, in run_forever
    self._run_once()
  File "....\lib\asyncio\base_events.py", line 1786, in _run_once
    handle._run()
  File "....\lib\asyncio\events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "....\lib\site-packages\tornado\ioloop.py", line 690, in <lambda>
    lambda f: self._run_callback(functools.partial(callback, future))
  File "....\lib\site-packages\tornado\ioloop.py", line 743, in _run_callback
    ret = callback()
  File "....\lib\site-packages\tornado\gen.py", line 787, in inner
    self.run()
  File "....\lib\site-packages\tornado\gen.py", line 748, in run
    yielded = self.gen.send(value)
  File "....\lib\site-packages\ipykernel\kernelbase.py", line 361, in process_one
    yield gen.maybe_future(dispatch(*args))
  File "....\lib\site-packages\tornado\gen.py", line 209, in wrapper
    yielded = next(result)
  File "....\lib\site-packages\ipykernel\kernelbase.py", line 268, in dispatch_shell
    yield gen.maybe_future(handler(stream, idents, msg))
  File "....\lib\site-packages\tornado\gen.py", line 209, in wrapper
    yielded = next(result)
  File "....\lib\site-packages\ipykernel\kernelbase.py", line 541, in execute_request
    user_expressions, allow_stdin,
  File "....\lib\site-packages\tornado\gen.py", line 209, in wrapper
    yielded = next(result)
  File "....\lib\site-packages\ipykernel\ipkernel.py", line 300, in do_execute
    res = shell.run_cell(code, store_history=store_history, silent=silent)
  File "....\lib\site-packages\ipykernel\zmqshell.py", line 536, in run_cell
    return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
  File "....\lib\site-packages\IPython\core\interactiveshell.py", line 2858, in run_cell
    raw_cell, store_history, silent, shell_futures)
  File "....\lib\site-packages\IPython\core\interactiveshell.py", line 2886, in _run_cell
    return runner(coro)
  File "....\lib\site-packages\IPython\core\async_helpers.py", line 68, in _pseudo_sync_runner
    coro.send(None)
  File "....\lib\site-packages\IPython\core\interactiveshell.py", line 3063, in run_cell_async
    interactivity=interactivity, compiler=compiler, result=result)
  File "....\lib\site-packages\IPython\core\interactiveshell.py", line 3254, in run_ast_nodes
    if (await self.run_code(code, result,  async_=asy)):
  File "....\lib\site-packages\IPython\core\interactiveshell.py", line 3331, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-20-8bd19fd5c6c6>", line 1, in <module>
    runfile('C:/src/python/tf_linear.py', wdir='C:/src/python')
  File "....\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 562, in runfile
    exec_code(file_code, filename, ns_globals, ns_locals)
  File "....\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 463, in exec_code
    exec(compiled, ns_globals, ns_locals)
  File "C:\src\python\tf_linear.py", line 56, in <module>
    LINEAR_EST.train(TRAIN_INPUT_FN)
  File "....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py", line 374, in train
    loss = self._train_model(input_fn, hooks, saving_listeners)
  File "....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py", line 1164, in _train_model
    return self._train_model_default(input_fn, hooks, saving_listeners)
  File "....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py", line 1198, in _train_model_default
    saving_listeners)
  File "....\lib\site-packages\tensorflow_estimator\python\estimator\estimator.py", line 1493, in _train_with_estimator_spec
    log_step_count_steps=log_step_count_steps) as mon_sess:
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 604, in MonitoredTrainingSession
    stop_grace_period_secs=stop_grace_period_secs)
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 1038, in __init__
    stop_grace_period_secs=stop_grace_period_secs)
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 749, in __init__
    self._sess = _RecoverableSession(self._coordinated_creator)
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 1231, in __init__
    _WrappedSession.__init__(self, self._create_session())
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 1236, in _create_session
    return self._sess_creator.create_session()
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 902, in create_session
    self.tf_sess = self._session_creator.create_session()
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 660, in create_session
    self._scaffold.finalize()
  File "....\lib\site-packages\tensorflow_core\python\training\monitored_session.py", line 243, in finalize
    self._saver.build()
  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 840, in build
    self._build(self._filename, build_save=True, build_restore=True)
  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 878, in _build
    build_restore=build_restore)
  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 502, in _build_internal
    restore_sequentially, reshape)
  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 381, in _AddShardedRestoreOps
    name="restore_shard"))
  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 328, in _AddRestoreOps
    restore_sequentially)
  File "....\lib\site-packages\tensorflow_core\python\training\saver.py", line 575, in bulk_restore
    return io_ops.restore_v2(filename_tensor, names, slices, dtypes)
  File "....\lib\site-packages\tensorflow_core\python\ops\gen_io_ops.py", line 1505, in restore_v2
    name=name)
  File "....\lib\site-packages\tensorflow_core\python\framework\op_def_library.py", line 742, in _apply_op_helper
    attrs=attr_protos, op_def=op_def)
  File "....\lib\site-packages\tensorflow_core\python\framework\ops.py", line 3322, in _create_op_internal
    op_def=op_def)
  File "....\lib\site-packages\tensorflow_core\python\framework\ops.py", line 1756, in __init__
    self._traceback = tf_stack.extract_stack()
  • Надеюсь, это простая ошибка
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...