ValueError: No gradients provided for any variable: ['conv2d/kernel:0', 'conv2d/bias:0', 'conv2d_1/kernel:0', 'conv2d_1/bias:0',

后端 未结 1 672
一生所求
一生所求 2021-01-21 06:16

System information Colab tensorflow 2.2.0

Describe the current behavior: I faced this error when i tried to solve my own data issues, which is multiple label semantic se

相关标签:
1条回答
  • 2021-01-21 06:56

    You get this error when you pass only the training data and missed to pass the labels in model.fit(). I was able to recreate your error using below code. You can download the dataset I am using in the program from here.

    Code to recreate the issue -

    %tensorflow_version 2.x
    # MLP for Pima Indians Dataset saved to single file
    import numpy as np
    from numpy import loadtxt
    import tensorflow as tf
    print(tf.__version__)
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense
    
    # load pima indians dataset
    dataset = np.loadtxt("/content/pima-indians-diabetes.csv", delimiter=",")
    
    # split into input (X) and output (Y) variables
    X = dataset[:,0:8]
    Y = dataset[:,8]
    
    # define model
    model = Sequential()
    model.add(Dense(12, input_dim=8, activation='relu'))
    model.add(Dense(8, activation='relu'))
    model.add(Dense(1, activation='sigmoid'))
    
    # compile model
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    
    # Model Summary
    #model.summary()
    
    # Fit the model
    model.fit(X, epochs=150, batch_size=10, verbose=0)
    

    Output -

    2.2.0
    ---------------------------------------------------------------------------
    ValueError                                Traceback (most recent call last)
    <ipython-input-4-7ddca8f2992e> in <module>()
         28 
         29 # Fit the model
    ---> 30 model.fit(X, epochs=150, batch_size=10, verbose=0)
    
    10 frames
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/func_graph.py in wrapper(*args, **kwargs)
        966           except Exception as e:  # pylint:disable=broad-except
        967             if hasattr(e, "ag_error_metadata"):
    --> 968               raise e.ag_error_metadata.to_exception(e)
        969             else:
        970               raise
    
    ValueError: in user code:
    
        /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:571 train_function  *
            outputs = self.distribute_strategy.run(
        /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:951 run  **
            return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
        /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:2290 call_for_each_replica
            return self._call_for_each_replica(fn, args, kwargs)
        /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:2649 _call_for_each_replica
            return fn(*args, **kwargs)
        /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:541 train_step  **
            self.trainable_variables)
        /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:1804 _minimize
            trainable_variables))
        /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/optimizer_v2/optimizer_v2.py:521 _aggregate_gradients
            filtered_grads_and_vars = _filter_grads(grads_and_vars)
        /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/optimizer_v2/optimizer_v2.py:1219 _filter_grads
            ([v.name for _, v in grads_and_vars],))
    
        ValueError: No gradients provided for any variable: ['dense_5/kernel:0', 'dense_5/bias:0', 'dense_6/kernel:0', 'dense_6/bias:0', 'dense_7/kernel:0', 'dense_7/bias:0'].
    

    Solution - Pass the training labels in model.fit() and your error will be fixed.

    Modified,

    model.fit(X , epochs=150, batch_size=10, verbose=0)
    

    to

    model.fit(X , Y, epochs=150, batch_size=10, verbose=0)
    

    Code -

    %tensorflow_version 2.x
    # MLP for Pima Indians Dataset saved to single file
    import numpy as np
    from numpy import loadtxt
    import tensorflow as tf
    print(tf.__version__)
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense
    
    # load pima indians dataset
    dataset = np.loadtxt("/content/pima-indians-diabetes.csv", delimiter=",")
    
    # split into input (X) and output (Y) variables
    X = dataset[:,0:8]
    Y = dataset[:,8]
    
    # define model
    model = Sequential()
    model.add(Dense(12, input_dim=8, activation='relu'))
    model.add(Dense(8, activation='relu'))
    model.add(Dense(1, activation='sigmoid'))
    
    # compile model
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    
    # Model Summary
    #model.summary()
    
    # Fit the model
    model.fit(X , Y, epochs=150, batch_size=10, verbose=0)
    

    Output -

    2.2.0
    <tensorflow.python.keras.callbacks.History at 0x7f9208433eb8>
    

    Hope this answers your question. Happy Learning.

    0 讨论(0)
提交回复
热议问题