Объект 'NoneType' не имеет атрибута 'lift_exception_on_not_ok_status' - PullRequest
1 голос
/ 04 октября 2019

Когда я определяю функцию для обучения нейронной сети, я получаю ошибку. Но когда я делаю это, не заставляя его работать, ошибки нет. Почему?

def myneural():

    import numpy as np
    import keras
    from keras import backend as K
    from keras.layers import Input, Dense, Activation
    from keras.models import Model, Sequential


    x_train_s = np.random.randint(5, size=(20, 2))
    x_test_s = x_train_s

    model = Sequential([
        Dense(10, input_shape=(2,)),
        Activation('linear'),
        Dense(2),
        Activation('linear')
    ])


    model.compile(optimizer='adam', loss='mean_squared_error')

    fittingadam = model.fit(x_train_s, x_train_s, epochs=2,
                            validation_data=(x_test_s, x_test_s),
                            shuffle=True, verbose=1, batch_size=None)


    encoder = K.function([model.layers[0].input],
                         [model.layers[1].output])

    code = encoder([x_test_s])[0]



myneural()

Я получаю ошибку:

Using TensorFlow backend.
WARNING:tensorflow:From C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
WARNING:tensorflow:From C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\ops\math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.cast instead.
Train on 20 samples, validate on 20 samples
Epoch 1/2
2019-10-03 14:34:50.275279: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2

20/20 [==============================] - 0s 7ms/step - loss: 4.0432 - val_loss: 3.9670
Epoch 2/2

20/20 [==============================] - 0s 53us/step - loss: 3.9670 - val_loss: 3.8917
Exception ignored in: <function BaseSession._Callable.__del__ at 0x0000021A829C1378>
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1453, in __del__
AttributeError: 'NoneType' object has no attribute 'raise_exception_on_not_ok_status'

Process finished with exit code 0

Но когда я удаляю первую и последнюю строки и удаляю отступы из других строк, ошибки не будет.

Первый вопрос: Почему это так? Как я могу решить, чтобы он запускался без проблем как функция?

Второй вопрос: А как насчет предупреждений? Они важны? Как мне от них избавиться?

1 Ответ

1 голос
/ 04 октября 2019
  • Вы должны обновить свой тензорный поток. Если вы уже пользуетесь последней версией (в чем я сомневаюсь) или связаны другими пакетами, игнорируйте это исключение. Это исключенное исключение, которое выдается при очистке интерпретатора. Тот факт, что вы можете «контролировать», является или нет исключение, является совпадением.
  • Это для людей, напрямую использующих тензор потока, поэтому в вашем случае керас. Это нехорошо, но вы ничего не можете с ними сделать, кроме как проверить, есть ли в этом репортере этих предупреждений эти предупреждения.

В общем: пока он делает то, что вы хотите, и имеет exit code 0 в конце игнорируйте все предупреждения и исключения.

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