python - NotImplementedError:无法将符号张量 (simple_rnn_17/strided_slice:0) 转换为 numpy 数组
问题描述
执行以下代码片段时出现标题中的错误:
np.random.seed(42)
tf.random.set_seed(42)
model = keras.models.Sequential([
# this None is not for batch_size, the None for batch_size is still added behind the scene
# here [None, 1] means we want to make the input to be accepted with any length of step size as well
keras.layers.SimpleRNN(1, input_shape=[None, 1])
])
optimizer = keras.optimizers.Adam(lr=0.005)
model.compile(loss="mse", optimizer=optimizer)
history = model.fit(X_train, y_train, epochs=20,
validation_data=(X_valid, y_valid))
完整的笔记本可以在这里找到:
handson-ml2/15_processing_sequences_using_rnns_and_cnns.ipynb
以下是完整的错误详细信息:
---------------------------------------------------------------------------
NotImplementedError Traceback (most recent call last)
/tmp/ipykernel_5579/3974885493.py in <module>
9 # this None is not for batch_size, the None for batch_size is still added behind the scene
10 # here [None, 1] means we want to make the input to be accepted with any length of step size as well
---> 11 keras.layers.SimpleRNN(1, input_shape=[None, 1])
12 ])
13
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/training/tracking/base.py in _method_wrapper(self, *args, **kwargs)
515 self._self_setattr_tracking = False # pylint: disable=protected-access
516 try:
--> 517 result = method(self, *args, **kwargs)
518 finally:
519 self._self_setattr_tracking = previous_value # pylint: disable=protected-access
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/engine/sequential.py in __init__(self, layers, name)
142 layers = [layers]
143 for layer in layers:
--> 144 self.add(layer)
145
146 @property
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/training/tracking/base.py in _method_wrapper(self, *args, **kwargs)
515 self._self_setattr_tracking = False # pylint: disable=protected-access
516 try:
--> 517 result = method(self, *args, **kwargs)
518 finally:
519 self._self_setattr_tracking = previous_value # pylint: disable=protected-access
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/engine/sequential.py in add(self, layer)
206 # and create the node connecting the current layer
207 # to the input layer we just created.
--> 208 layer(x)
209 set_inputs = True
210
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/layers/recurrent.py in __call__(self, inputs, initial_state, constants, **kwargs)
658
659 if initial_state is None and constants is None:
--> 660 return super(RNN, self).__call__(inputs, **kwargs)
661
662 # If any of `initial_state` or `constants` are specified and are Keras
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py in __call__(self, *args, **kwargs)
950 if _in_functional_construction_mode(self, inputs, args, kwargs, input_list):
951 return self._functional_construction_call(inputs, args, kwargs,
--> 952 input_list)
953
954 # Maintains info about the `Layer.call` stack.
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py in _functional_construction_call(self, inputs, args, kwargs, input_list)
1089 # Check input assumptions set after layer building, e.g. input shape.
1090 outputs = self._keras_tensor_symbolic_call(
-> 1091 inputs, input_masks, args, kwargs)
1092
1093 if outputs is None:
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py in _keras_tensor_symbolic_call(self, inputs, input_masks, args, kwargs)
820 return nest.map_structure(keras_tensor.KerasTensor, output_signature)
821 else:
--> 822 return self._infer_output_signature(inputs, args, kwargs, input_masks)
823
824 def _infer_output_signature(self, inputs, args, kwargs, input_masks):
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py in _infer_output_signature(self, inputs, args, kwargs, input_masks)
861 # TODO(kaftan): do we maybe_build here, or have we already done it?
862 self._maybe_build(inputs)
--> 863 outputs = call_fn(inputs, *args, **kwargs)
864
865 self._handle_activity_regularization(inputs, outputs)
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/layers/recurrent.py in call(self, inputs, mask, training, initial_state)
1571 self._maybe_reset_cell_dropout_mask(self.cell)
1572 return super(SimpleRNN, self).call(
-> 1573 inputs, mask=mask, training=training, initial_state=initial_state)
1574
1575 @property
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/layers/recurrent.py in call(self, inputs, mask, training, initial_state, constants)
730
731 inputs, initial_state, constants = self._process_inputs(
--> 732 inputs, initial_state, constants)
733
734 self._maybe_reset_cell_dropout_mask(self.cell)
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/layers/recurrent.py in _process_inputs(self, inputs, initial_state, constants)
857 initial_state = self.states
858 elif initial_state is None:
--> 859 initial_state = self.get_initial_state(inputs)
860
861 if len(initial_state) != len(self.states):
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/layers/recurrent.py in get_initial_state(self, inputs)
641 if get_initial_state_fn:
642 init_state = get_initial_state_fn(
--> 643 inputs=None, batch_size=batch_size, dtype=dtype)
644 else:
645 init_state = _generate_zero_filled_state(batch_size, self.cell.state_size,
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/layers/recurrent.py in get_initial_state(self, inputs, batch_size, dtype)
1383
1384 def get_initial_state(self, inputs=None, batch_size=None, dtype=None):
-> 1385 return _generate_zero_filled_state_for_cell(self, inputs, batch_size, dtype)
1386
1387 def get_config(self):
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/layers/recurrent.py in _generate_zero_filled_state_for_cell(cell, inputs, batch_size, dtype)
2985 batch_size = array_ops.shape(inputs)[0]
2986 dtype = inputs.dtype
-> 2987 return _generate_zero_filled_state(batch_size, cell.state_size, dtype)
2988
2989
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/layers/recurrent.py in _generate_zero_filled_state(batch_size_tensor, state_size, dtype)
3003 return nest.map_structure(create_zeros, state_size)
3004 else:
-> 3005 return create_zeros(state_size)
3006
3007
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/keras/layers/recurrent.py in create_zeros(unnested_state_size)
2998 flat_dims = tensor_shape.TensorShape(unnested_state_size).as_list()
2999 init_state_size = [batch_size_tensor] + flat_dims
-> 3000 return array_ops.zeros(init_state_size, dtype=dtype)
3001
3002 if nest.is_nested(state_size):
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/util/dispatch.py in wrapper(*args, **kwargs)
199 """Call target, and fall back on dispatchers if there is a TypeError."""
200 try:
--> 201 return target(*args, **kwargs)
202 except (TypeError, ValueError):
203 # Note: convert_to_eager_tensor currently raises a ValueError, not a
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/ops/array_ops.py in wrapped(*args, **kwargs)
2817
2818 def wrapped(*args, **kwargs):
-> 2819 tensor = fun(*args, **kwargs)
2820 tensor._is_zeros_tensor = True
2821 return tensor
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/ops/array_ops.py in zeros(shape, dtype, name)
2866 # Create a constant if it won't be very big. Otherwise create a fill
2867 # op to prevent serialized GraphDefs from becoming too large.
-> 2868 output = _constant_if_small(zero, shape, dtype, name)
2869 if output is not None:
2870 return output
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/ops/array_ops.py in _constant_if_small(value, shape, dtype, name)
2802 def _constant_if_small(value, shape, dtype, name):
2803 try:
-> 2804 if np.prod(shape) < 1000:
2805 return constant(value, shape=shape, dtype=dtype, name=name)
2806 except TypeError:
<__array_function__ internals> in prod(*args, **kwargs)
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/numpy/core/fromnumeric.py in prod(a, axis, dtype, out, keepdims, initial, where)
3029 """
3030 return _wrapreduction(a, np.multiply, 'prod', axis, dtype, out,
-> 3031 keepdims=keepdims, initial=initial, where=where)
3032
3033
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/numpy/core/fromnumeric.py in _wrapreduction(obj, ufunc, method, axis, dtype, out, **kwargs)
85 return reduction(axis=axis, out=out, **passkwargs)
86
---> 87 return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
88
89
~/anaconda3/envs/handsonml2/lib/python3.7/site-packages/tensorflow/python/framework/ops.py in __array__(self)
853 "Cannot convert a symbolic Tensor ({}) to a numpy array."
854 " This error may indicate that you're trying to pass a Tensor to"
--> 855 " a NumPy call, which is not supported".format(self.name))
856
857 def __len__(self):
NotImplementedError: Cannot convert a symbolic Tensor (simple_rnn_17/strided_slice:0) to a numpy array. This error may indicate that you're trying to pass a Tensor to a NumPy call, which is not supported
以下是我的 anaconda 环境中当前安装的软件包列表:
# packages in environment at /home/hafiz031/anaconda3/envs/handsonml2:
#
# Name Version Build Channel
_libgcc_mutex 0.1 main
_openmp_mutex 4.5 1_gnu
_py-xgboost-mutex 2.0 cpu_0
_tflow_select 2.1.0 gpu
absl-py 0.13.0 py37h06a4308_0
anyio 3.3.0 py37h89c1867_0 conda-forge
argcomplete 1.12.3 pyhd8ed1ab_2 conda-forge
argon2-cffi 20.1.0 py37h5e8e339_2 conda-forge
astor 0.8.1 py37h06a4308_0
astunparse 1.6.3 py_0
async_generator 1.10 py_0 conda-forge
attrs 21.2.0 pyhd8ed1ab_0 conda-forge
babel 2.9.1 pyh44b312d_0 conda-forge
backcall 0.2.0 pyh9f0ad1d_0 conda-forge
backports 1.0 py_2 conda-forge
backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge
blas 1.0 mkl
bleach 4.1.0 pyhd8ed1ab_0 conda-forge
blinker 1.4 py37h06a4308_0
brotlipy 0.7.0 py37h5e8e339_1001 conda-forge
c-ares 1.17.1 h27cfd23_0
ca-certificates 2021.7.5 h06a4308_1
cachetools 4.2.2 pyhd3eb1b0_0
certifi 2021.5.30 py37h06a4308_0
cffi 1.14.6 py37hc58025e_0 conda-forge
chardet 4.0.0 py37h89c1867_1 conda-forge
charset-normalizer 2.0.0 pyhd8ed1ab_0 conda-forge
click 8.0.1 pyhd3eb1b0_0
coverage 5.5 py37h27cfd23_2
cryptography 3.4.7 py37h5d9358c_0 conda-forge
cudatoolkit 10.1.243 h6bb024c_0
cudnn 7.6.5 cuda10.1_0
cupti 10.1.168 0
cycler 0.10.0 py37_0
cython 0.29.24 py37h295c915_0
dataclasses 0.8 pyh6d0b6a4_7
dbus 1.13.18 hb2f20db_0
debugpy 1.4.1 py37hcd2ae1e_0 conda-forge
decorator 5.1.0 pyhd8ed1ab_0 conda-forge
defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge
entrypoints 0.3 pyhd8ed1ab_1003 conda-forge
expat 2.4.1 h2531618_2
filelock 3.0.12 pypi_0 pypi
fontconfig 2.13.1 h6c09931_0
freetype 2.10.4 h5ab3b9f_0
gast 0.4.0 pyhd3eb1b0_0
glib 2.69.1 h5202010_0
google-auth 1.21.3 py_0
google-auth-oauthlib 0.4.4 pyhd3eb1b0_0
google-pasta 0.2.0 pyhd3eb1b0_0
grpcio 1.36.1 py37h2157cd5_1
gst-plugins-base 1.14.0 h8213a91_2
gstreamer 1.14.0 h28cd5cc_2
h5py 2.10.0 py37hd6299e0_1
hdf5 1.10.6 hb1b8bf9_0
icu 58.2 he6710b0_3
idna 3.1 pyhd3deb0d_0 conda-forge
importlib-metadata 4.8.1 py37h89c1867_0 conda-forge
importlib_metadata 4.8.1 hd8ed1ab_0 conda-forge
intel-openmp 2021.3.0 h06a4308_3350
ipykernel 6.4.1 py37h6531663_0 conda-forge
ipython 7.27.0 py37h6531663_0 conda-forge
ipython_genutils 0.2.0 py_1 conda-forge
jedi 0.18.0 py37h89c1867_2 conda-forge
jinja2 3.0.1 pyhd8ed1ab_0 conda-forge
joblib 1.0.1 pyhd3eb1b0_0
jpeg 9d h7f8727e_0
json5 0.9.5 pyh9f0ad1d_0 conda-forge
jsonschema 3.2.0 pyhd8ed1ab_3 conda-forge
jupyter_client 7.0.3 pyhd8ed1ab_0 conda-forge
jupyter_core 4.8.1 py37h89c1867_0 conda-forge
jupyter_server 1.11.0 pyhd8ed1ab_0 conda-forge
jupyterlab 3.1.13 pyhd8ed1ab_0 conda-forge
jupyterlab_pygments 0.1.2 pyh9f0ad1d_0 conda-forge
jupyterlab_server 2.8.1 pyhd8ed1ab_0 conda-forge
keras-preprocessing 1.1.2 pyhd3eb1b0_0
kiwisolver 1.3.1 py37h2531618_0
lcms2 2.12 h3be6417_0
ld_impl_linux-64 2.35.1 h7274673_9
libffi 3.3 he6710b0_2
libgcc-ng 9.3.0 h5101ec6_17
libgfortran-ng 7.5.0 ha8ba4b0_17
libgfortran4 7.5.0 ha8ba4b0_17
libgomp 9.3.0 h5101ec6_17
libpng 1.6.37 hbc83047_0
libprotobuf 3.17.2 h4ff587b_1
libsodium 1.0.18 h36c2ea0_1 conda-forge
libstdcxx-ng 9.3.0 hd4cf53a_17
libtiff 4.2.0 h85742a9_0
libuuid 1.0.3 h1bed415_2
libwebp-base 1.2.0 h27cfd23_0
libxcb 1.14 h7b6447c_0
libxgboost 1.3.3 h2531618_0
libxml2 2.9.12 h03d6c58_0
lz4-c 1.9.3 h295c915_1
markdown 3.3.4 py37h06a4308_0
markupsafe 2.0.1 py37h5e8e339_0 conda-forge
matplotlib 3.3.4 py37h06a4308_0
matplotlib-base 3.3.4 py37h62a2d02_0
matplotlib-inline 0.1.3 pyhd8ed1ab_0 conda-forge
mistune 0.8.4 py37h5e8e339_1004 conda-forge
mkl 2021.3.0 h06a4308_520
mkl-service 2.4.0 py37h7f8727e_0
mkl_fft 1.3.0 py37h42c9631_2
mkl_random 1.2.2 py37h51133e4_0
nbclassic 0.3.2 pyhd8ed1ab_0 conda-forge
nbclient 0.5.4 pyhd8ed1ab_0 conda-forge
nbconvert 6.1.0 py37h89c1867_1 conda-forge
nbformat 5.1.3 pyhd8ed1ab_0 conda-forge
ncurses 6.2 he6710b0_1
nest-asyncio 1.5.1 pyhd8ed1ab_0 conda-forge
notebook 6.4.4 pyha770c72_0 conda-forge
numpy 1.20.3 pypi_0 pypi
oauthlib 3.1.1 pyhd3eb1b0_0
olefile 0.46 py37_0
openjpeg 2.4.0 h3ad879b_0
openssl 1.1.1l h7f8727e_0
opt_einsum 3.3.0 pyhd3eb1b0_1
packaging 21.0 pyhd8ed1ab_0 conda-forge
pandas 1.2.2 py37ha9443f7_0
pandoc 2.14.2 h7f98852_0 conda-forge
pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge
parso 0.8.2 pyhd8ed1ab_0 conda-forge
pcre 8.45 h295c915_0
pexpect 4.8.0 pyh9f0ad1d_2 conda-forge
pickleshare 0.7.5 py_1003 conda-forge
pillow 8.3.1 py37h2c7a002_0
pip 21.0.1 py37h06a4308_0
prometheus_client 0.11.0 pyhd8ed1ab_0 conda-forge
prompt-toolkit 3.0.20 pyha770c72_0 conda-forge
protobuf 3.17.2 py37h295c915_0
ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge
py-xgboost 1.3.3 py37h06a4308_0
pyasn1 0.4.8 pyhd3eb1b0_0
pyasn1-modules 0.2.8 py_0
pycparser 2.20 pyh9f0ad1d_2 conda-forge
pygments 2.10.0 pyhd8ed1ab_0 conda-forge
pyjwt 2.1.0 py37h06a4308_0
pyopenssl 20.0.1 pyhd8ed1ab_0 conda-forge
pyparsing 2.4.7 pyh9f0ad1d_0 conda-forge
pyqt 5.9.2 py37h05f1152_2
pyrsistent 0.17.3 py37h5e8e339_2 conda-forge
pysocks 1.7.1 py37h89c1867_3 conda-forge
python 3.7.11 h12debd9_0
python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge
python-flatbuffers 1.12 pyhd3eb1b0_0
python_abi 3.7 2_cp37m conda-forge
pytz 2021.1 pyhd8ed1ab_0 conda-forge
pyzmq 19.0.2 py37hac76be4_2 conda-forge
qt 5.9.7 h5867ecd_1
readline 8.1 h27cfd23_0
regex 2021.8.28 pypi_0 pypi
requests 2.26.0 pyhd8ed1ab_0 conda-forge
requests-oauthlib 1.3.0 py_0
requests-unixsocket 0.2.0 py_0 conda-forge
rsa 4.7.2 pyhd3eb1b0_1
sacremoses 0.0.45 pypi_0 pypi
scikit-learn 0.24.1 py37ha9443f7_0
scipy 1.7.1 py37h292c36d_2
send2trash 1.8.0 pyhd8ed1ab_0 conda-forge
setuptools 58.0.4 py37h06a4308_0
sip 4.19.8 py37hf484d3e_0
six 1.16.0 pyh6c4a22f_0 conda-forge
sniffio 1.2.0 py37h89c1867_1 conda-forge
sqlite 3.36.0 hc218d9a_0
tensorboard 2.4.0 pyhc547734_0
tensorboard-plugin-wit 1.6.0 py_0
tensorflow 2.4.1 gpu_py37ha2e99fa_0
tensorflow-base 2.4.1 gpu_py37h29c2da4_0
tensorflow-estimator 2.6.0 pyh7b7c402_0
tensorflow-gpu 2.4.1 h30adc30_0
termcolor 1.1.0 py37h06a4308_1
terminado 0.12.1 py37h89c1867_0 conda-forge
testpath 0.5.0 pyhd8ed1ab_0 conda-forge
threadpoolctl 2.2.0 pyh0d69192_0
tk 8.6.10 hbc83047_0
tokenizers 0.10.3 pypi_0 pypi
tornado 6.1 py37h5e8e339_1 conda-forge
tqdm 4.62.3 pypi_0 pypi
traitlets 5.1.0 pyhd8ed1ab_0 conda-forge
transformers 4.3.2 pypi_0 pypi
typing_extensions 3.10.0.2 pyha770c72_0 conda-forge
urllib3 1.26.7 pyhd8ed1ab_0 conda-forge
wcwidth 0.2.5 pyh9f0ad1d_2 conda-forge
webencodings 0.5.1 py_1 conda-forge
websocket-client 0.57.0 py37h89c1867_4 conda-forge
werkzeug 2.0.1 pyhd3eb1b0_0
wheel 0.37.0 pyhd3eb1b0_1
wrapt 1.12.1 py37h7b6447c_1
xgboost 1.3.3 py37h06a4308_0
xz 5.2.5 h7b6447c_0
zeromq 4.3.4 h9c3ff4c_0 conda-forge
zipp 3.5.0 pyhd8ed1ab_0 conda-forge
zlib 1.2.11 h7b6447c_3
zstd 1.4.9 haebb681_0
我已经尝试安装不同的numpy
版本(1.19
等1.19.5
),但到目前为止它们没有帮助。
解决方案
推荐阅读
- regex - 正则表达式不包括特定字符
- mysql - 在 mysql 中使用 not exist 来查找尚未分配的 ID
- .net - 是否应该将 netstandard.dll 部署到最终用户
- swift - 如何在swift 4中使用电子邮件身份验证杀死应用程序后保持登录状态
- user-interface - 运行 OMNeT++ 示例时缺少用户界面
- kubernetes - 失败错误:无法连接到任何 etcd 端点 - etcd:0/1 已连接:kubeadm
- api - 我们如何使用 python SDK 在 onelogin 中添加应用程序?
- c# - 如何以两级深度分层检索实体的所有字段?
- r - R 为什么 nclass.FD 返回的 bin 数量与 hist 函数不同?
- java - java.sql.SQLSyntaxErrorException: ORA-00904 - “ID”: 无效标识符