“NoneType”对象没有属性“raise_exception_on_not_ok_status”

当我定义一个函数来执行神经网络训练时,我得到一个错误。但是,当我这样做而不使它起作用时,就没有错误。为什么?


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


但是,当我删除第一行和最后一行并从其他行中删除缩进时,不会有错误。


第一个问题:为什么会这样?我怎样才能解决它以运行它而没有任何问题作为函数?


第二个问题:警告呢?它们重要吗?我怎样才能摆脱它们?


尚方宝剑之说
浏览 110回答 1
1回答

一只斗牛犬

你应该更新你的张量流。如果您已经使用最新版本(我对此表示怀疑),或者您受其他软件包的约束,请忽略此异常。这是一个被抑制的异常,在解释器清理期间抛出。您可以“控制”是否引发异常的事实是巧合。这些是为直接使用 tensorflow 的人准备的,所以在你的情况下是 keras。这不好,但你不能对它们做任何事情,除了检查他们的错误报告者是否已经列出了这些警告。所以一般来说:只要它做你想要exit code 0的并且最终拥有,忽略所有警告和异常。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python