Python ValueError:操作具有“无”渐变-未使用自定义

Python ValueError:操作具有“无”渐变-未使用自定义,python,tensorflow,keras,Python,Tensorflow,Keras,根据标题,我在尝试使用Keras进行一些图像分类训练时遇到了这个常见错误。与几乎所有其他示例不同,我不想定制任何东西,只是简单地使用bog标准keras功能! 比如,谁问了一个类似的问题,但似乎没有跟进 我以前在同一个项目中遇到过一个错误,但是在升级了cudnn和cudatoolkit(以及相关的NVidia后端)之后,我遇到了这个新错误 康达名单: # packages in environment at /home/me/Programs/anaconda3/envs/hand-gestur

根据标题,我在尝试使用Keras进行一些图像分类训练时遇到了这个常见错误。与几乎所有其他示例不同,我不想定制任何东西,只是简单地使用bog标准keras功能! 比如,谁问了一个类似的问题,但似乎没有跟进

我以前在同一个项目中遇到过一个错误,但是在升级了cudnn和cudatoolkit(以及相关的NVidia后端)之后,我遇到了这个新错误

康达名单:

# packages in environment at /home/me/Programs/anaconda3/envs/hand-gesture:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main  
_tflow_select             2.1.0                       gpu  
absl-py                   0.9.0                    py37_0  
alabaster                 0.7.12                   py37_0  
argh                      0.26.2                   py37_0  
asn1crypto                1.3.0                    py37_0  
astor                     0.8.0                    py37_0  
astroid                   2.3.3                    py37_0  
atomicwrites              1.3.0                    py37_1  
attrs                     19.3.0                     py_0  
autopep8                  1.4.4                      py_0  
babel                     2.8.0                      py_0  
backcall                  0.1.0                    py37_0  
blas                      1.0                         mkl  
bleach                    3.1.4                      py_0  
blinker                   1.4                      py37_0  
bzip2                     1.0.8                h7b6447c_0  
c-ares                    1.15.0            h7b6447c_1001  
ca-certificates           2020.1.1                      0  
cachetools                3.1.1                      py_0  
cairo                     1.14.12              h8948797_3  
certifi                   2020.4.5.1               py37_0  
cffi                      1.14.0           py37h2e261b9_0  
chardet                   3.0.4                 py37_1003  
click                     7.1.1                      py_0  
cloudpickle               1.4.0                      py_0  
cryptography              2.8              py37h1ba5d50_0  
cudatoolkit               10.1.243             h6bb024c_0  
cudnn                     7.6.5                cuda10.1_0  
cupti                     10.1.168                      0  
cycler                    0.10.0                   py37_0  
dbus                      1.13.12              h746ee38_0  
decorator                 4.4.2                      py_0  
defusedxml                0.6.0                      py_0  
diff-match-patch          20181111                   py_0  
docutils                  0.16                     py37_0  
entrypoints               0.3                      py37_0  
expat                     2.2.6                he6710b0_0  
ffmpeg                    4.0                  hcdf2ecd_0  
flake8                    3.7.9                    py37_0  
fontconfig                2.13.0               h9420a91_0  
freeglut                  3.0.0                hf484d3e_5  
freetype                  2.9.1                h8a8886c_1  
future                    0.18.2                   py37_0  
gast                      0.2.2                    py37_0  
glib                      2.63.1               h5a9c865_0  
gmp                       6.1.2                h6c8ec71_1  
google-auth               1.13.1                     py_0  
google-auth-oauthlib      0.4.1                      py_2  
google-pasta              0.2.0                      py_0  
graphite2                 1.3.13               h23475e2_0  
grpcio                    1.27.2           py37hf8bcb03_0  
gst-plugins-base          1.14.0               hbbd80ab_1  
gstreamer                 1.14.0               hb453b48_1  
h5py                      2.8.0           py37h3010b51_1003    conda-forge
harfbuzz                  1.8.8                hffaf4a1_0  
hdf5                      1.10.2               hba1933b_1  
icu                       58.2                 he6710b0_3  
idna                      2.9                        py_1  
imagesize                 1.2.0                      py_0  
importlib_metadata        1.5.0                    py37_0  
intel-openmp              2020.0                      166  
intervaltree              3.0.2                      py_0  
ipykernel                 5.1.4            py37h39e3cac_0  
ipython                   7.13.0           py37h5ca1d4c_0  
ipython_genutils          0.2.0                    py37_0  
isort                     4.3.21                   py37_0  
jasper                    2.0.14               h07fcdf6_1  
jedi                      0.15.2                   py37_0  
jeepney                   0.4.3                      py_0  
jinja2                    2.11.2                     py_0  
jpeg                      9b                   h024ee3a_2  
jsonschema                3.2.0                    py37_0  
jupyter_client            6.1.3                      py_0  
jupyter_core              4.6.3                    py37_0  
keras                     2.3.1                         0  
keras-applications        1.0.8                      py_0  
keras-base                2.3.1                    py37_0  
keras-gpu                 2.3.1                         0  
keras-preprocessing       1.1.0                      py_1  
keyring                   21.1.1                   py37_2  
kiwisolver                1.2.0            py37hfd86e86_0  
lazy-object-proxy         1.4.3            py37h7b6447c_0  
ld_impl_linux-64          2.33.1               h53a641e_7  
libedit                   3.1.20181209         hc058e9b_0  
libffi                    3.2.1                hd88cf55_4  
libgcc-ng                 9.1.0                hdf63c60_0  
libgfortran-ng            7.3.0                hdf63c60_0  
libglu                    9.0.0                hf484d3e_1  
libopencv                 3.4.2                hb342d67_1  
libopus                   1.3.1                h7b6447c_0  
libpng                    1.6.37               hbc83047_0  
libprotobuf               3.11.4               hd408876_0  
libsodium                 1.0.16               h1bed415_0  
libspatialindex           1.9.3                he6710b0_0  
libstdcxx-ng              9.1.0                hdf63c60_0  
libtiff                   4.1.0                h2733197_0  
libuuid                   1.0.3                h1bed415_2  
libvpx                    1.7.0                h439df22_0  
libxcb                    1.13                 h1bed415_1  
libxml2                   2.9.9                hea5a465_1  
markdown                  3.1.1                    py37_0  
markupsafe                1.1.1            py37h7b6447c_0  
matplotlib                3.1.3                    py37_0  
matplotlib-base           3.1.3            py37hef1b27d_0  
mccabe                    0.6.1                    py37_1  
mistune                   0.8.4            py37h7b6447c_0  
mkl                       2020.0                      166  
mkl-service               2.3.0            py37he904b0f_0  
mkl_fft                   1.0.15           py37ha843d7b_0  
mkl_random                1.1.0            py37hd6b4f25_0  
nbconvert                 5.6.1                    py37_0  
nbformat                  5.0.4                      py_0  
ncurses                   6.2                  he6710b0_1  
numpy                     1.18.1           py37h4f9e942_0  
numpy-base                1.18.1           py37hde5b4d6_1  
numpydoc                  0.9.2                      py_0  
oauthlib                  3.1.0                      py_0  
olefile                   0.46                     py37_0  
opencv                    3.4.2            py37h6fd60c2_1  
openssl                   1.1.1g               h7b6447c_0  
opt_einsum                3.1.0                      py_0  
packaging                 20.3                       py_0  
pandoc                    2.2.3.2                       0  
pandocfilters             1.4.2                    py37_1  
parso                     0.5.2                      py_0  
pathtools                 0.1.2                      py_1  
pcre                      8.43                 he6710b0_0  
pexpect                   4.8.0                    py37_0  
pickleshare               0.7.5                    py37_0  
pillow                    7.0.0            py37hb39fc2d_0  
pip                       20.0.2                   py37_1  
pixman                    0.38.0               h7b6447c_0  
pluggy                    0.13.1                   py37_0  
prompt-toolkit            3.0.4                      py_0  
prompt_toolkit            3.0.4                         0  
protobuf                  3.11.4           py37he6710b0_0  
psutil                    5.7.0            py37h7b6447c_0  
ptyprocess                0.6.0                    py37_0  
py-opencv                 3.4.2            py37hb342d67_1  
pyasn1                    0.4.8                      py_0  
pyasn1-modules            0.2.7                      py_0  
pycodestyle               2.5.0                    py37_0  
pycparser                 2.20                       py_0  
pydocstyle                4.0.1                      py_0  
pyflakes                  2.1.1                    py37_0  
pygments                  2.6.1                      py_0  
pyjwt                     1.7.1                    py37_0  
pylint                    2.5.0                    py37_0  
pyopenssl                 19.1.0                   py37_0  
pyparsing                 2.4.7                      py_0  
pyqt                      5.9.2            py37h05f1152_2  
pyrsistent                0.16.0           py37h7b6447c_0  
pysocks                   1.7.1                    py37_0  
python                    3.7.7           hcf32534_0_cpython  
python-dateutil           2.8.1                      py_0  
python-jsonrpc-server     0.3.4                      py_0  
python-language-server    0.31.10                  py37_0  
pytz                      2019.3                     py_0  
pyxdg                     0.26                       py_0  
pyyaml                    5.3.1            py37h7b6447c_0  
pyzmq                     18.1.1           py37he6710b0_0  
qdarkstyle                2.8.1                      py_0  
qt                        5.9.7                h5867ecd_1  
qtawesome                 0.7.0                      py_0  
qtconsole                 4.7.3                      py_0  
qtpy                      1.9.0                      py_0  
readline                  8.0                  h7b6447c_0  
requests                  2.23.0                   py37_0  
requests-oauthlib         1.3.0                      py_0  
rope                      0.16.0                     py_0  
rsa                       4.0                        py_0  
rtree                     0.9.4                    py37_1  
scipy                     1.4.1            py37h0b6359f_0  
secretstorage             3.1.2                    py37_0  
setuptools                46.1.3                   py37_0  
sip                       4.19.8           py37hf484d3e_0  
six                       1.14.0                   py37_0  
snowballstemmer           2.0.0                      py_0  
sortedcontainers          2.1.0                    py37_0  
sphinx                    3.0.3                      py_0  
sphinxcontrib-applehelp   1.0.2                      py_0  
sphinxcontrib-devhelp     1.0.2                      py_0  
sphinxcontrib-htmlhelp    1.0.3                      py_0  
sphinxcontrib-jsmath      1.0.1                      py_0  
sphinxcontrib-qthelp      1.0.3                      py_0  
sphinxcontrib-serializinghtml 1.1.4                      py_0  
spyder                    4.1.2                    py37_0  
spyder-kernels            1.9.0                    py37_0  
sqlite                    3.31.1               h62c20be_1  
tensorboard               2.1.0                     py3_0  
tensorflow                2.1.0           gpu_py37h7a4bb67_0  
tensorflow-base           2.1.0           gpu_py37h6c5654b_0  
tensorflow-estimator      2.1.0              pyhd54b08b_0  
tensorflow-gpu            2.1.0                h0d30ee6_0  
termcolor                 1.1.0                    py37_1  
testpath                  0.4.4                      py_0  
tk                        8.6.8                hbc83047_0  
toml                      0.10.0           py37h28b3542_0  
tornado                   6.0.4            py37h7b6447c_1  
traitlets                 4.3.3                    py37_0  
ujson                     1.35             py37h14c3975_0  
urllib3                   1.25.8                   py37_0  
watchdog                  0.10.2                   py37_0  
wcwidth                   0.1.9                      py_0  
webencodings              0.5.1                    py37_1  
werkzeug                  1.0.1                      py_0  
wheel                     0.34.2                   py37_0  
wrapt                     1.12.1           py37h7b6447c_1  
wurlitzer                 2.0.0                    py37_0  
xz                        5.2.5                h7b6447c_0  
yaml                      0.1.7                had09818_2  
yapf                      0.28.0                     py_0  
zeromq                    4.3.1                he6710b0_3  
zipp                      3.1.0                      py_0  
zlib                      1.2.11               h7b6447c_3  
zstd                      1.3.7                h0b5b093_0
代码

日志

允许我运行一个时代,但现在我

Epoch 1/1
16/16 [==============================] - 6s 370ms/step - loss: 4.0208 - accuracy: 0.0391 - val_loss: 7.3795 - val_accuracy: 0.0469
Out[3]: <keras.callbacks.callbacks.History at 0x7f817e63c2d0>
Epoch 1/1
16/16[===========================================================================-6s 370ms/步长-损耗:4.0208-精度:0.0391-val_损耗:7.3795-val_精度:0.0469
出[3]:
编辑2:
正如Matias指出的,我的代码只设置为运行1个历元。因此,删除
clear_session()
解决了我的问题。

我认为问题在于您在训练模型之前清除了会话,这样做没有任何意义,因为清除会话会清除内存中的模型结构,因此TensorFlow端没有模型表示,使培训失败


因此,在这种情况下,不要使用
K.清除会话()。似乎不需要它。

为什么在调用fit_generator之前要调用K.clear_session()。@MatiasValdenegro我试图修复我遇到的另一个问题(可能通过升级版本“自行解决”)。删除该行可以修复该错误,并且我可以运行一个历元。一旦结束,我现在收到另一条信息。更新的问题。我现在没有看到任何问题。新问题是什么?它只运行一个历元,然后停止,这不是预期的行为,因为我预计会有5个历元。你没有将历元设置为5,似乎历元设置为1,正如它所说的历元1/1
from keras import backend as K
K.clear_session()

import keras 
keras.backend.clear_session()


model.fit_generator(train_it, steps_per_epoch=16, validation_data=valid_it, validation_steps=8)
Traceback (most recent call last):

  File "<ipython-input-19-ba2ec4f0a2a8>", line 8, in <module>
    model.fit_generator(train_it, steps_per_epoch=16, validation_data=valid_it, validation_steps=8)

  File "/home/me/Programs/anaconda3/envs/hand-gesture/lib/python3.7/site-packages/keras/legacy/interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)

  File "/home/me/Programs/anaconda3/envs/hand-gesture/lib/python3.7/site-packages/keras/engine/training.py", line 1732, in fit_generator
    initial_epoch=initial_epoch)

  File "/home/me/Programs/anaconda3/envs/hand-gesture/lib/python3.7/site-packages/keras/engine/training_generator.py", line 42, in fit_generator
    model._make_train_function()

  File "/home/me/Programs/anaconda3/envs/hand-gesture/lib/python3.7/site-packages/keras/engine/training.py", line 316, in _make_train_function
    loss=self.total_loss)

  File "/home/me/Programs/anaconda3/envs/hand-gesture/lib/python3.7/site-packages/keras/legacy/interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)

  File "/home/me/Programs/anaconda3/envs/hand-gesture/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py", line 75, in symbolic_fn_wrapper
    return func(*args, **kwargs)

  File "/home/me/Programs/anaconda3/envs/hand-gesture/lib/python3.7/site-packages/keras/optimizers.py", line 598, in get_updates
    grads = self.get_gradients(loss, params)

  File "/home/me/Programs/anaconda3/envs/hand-gesture/lib/python3.7/site-packages/keras/optimizers.py", line 93, in get_gradients
    raise ValueError('An operation has `None` for gradient. '

ValueError: An operation has `None` for gradient. Please make sure that all of your ops have a gradient defined (i.e. are differentiable). Common ops without gradient: K.argmax, K.round, K.eval.
from keras import backend as K
K.clear_session()

import keras 
keras.backend.clear_session()
Epoch 1/1
16/16 [==============================] - 6s 370ms/step - loss: 4.0208 - accuracy: 0.0391 - val_loss: 7.3795 - val_accuracy: 0.0469
Out[3]: <keras.callbacks.callbacks.History at 0x7f817e63c2d0>