Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将形状张量(?,100100,1)转换为numpy阵列误差_Python_Tensorflow_Keras - Fatal编程技术网

Python 将形状张量(?,100100,1)转换为numpy阵列误差

Python 将形状张量(?,100100,1)转换为numpy阵列误差,python,tensorflow,keras,Python,Tensorflow,Keras,我正在尝试使用.eval()将形状为(?,100100,1)的张量转换为numpy数组。但我一直在犯错误。我认为它无法使用第一维度中包含的信息来转换它。我试过使用清除会话(),但不起作用 也许我可以将值1输入到该位置。我该怎么做 我正在自定义层中运行call方法 def call(self,x): input_tensor=x with tf.compat.v1.Session() as sess: sess.run(tf.compat.v1.global_

我正在尝试使用
.eval()
将形状为
(?,100100,1)
的张量转换为numpy数组。但我一直在犯错误。我认为它无法使用第一维度中包含的信息来转换它。我试过使用
清除会话()
,但不起作用

也许我可以将值1输入到该位置。我该怎么做

我正在自定义层中运行call方法

def call(self,x):
     input_tensor=x

     with tf.compat.v1.Session() as sess:
        sess.run(tf.compat.v1.global_variables_initializer())
        x_unpacked = input_tensor.eval()
      .......
我想做的是在自定义层中处理每个训练示例时使用不同的规则,这取决于训练示例数组中的值。所以我尝试在每次调用时计算x,这可能不是它所做的

尽管如此,最好在层处理每个训练示例之前知道如何获取其值,以便我可以在call语句的其余部分中选择如何处理它

错误消息如下所示:

Traceback (most recent call last):
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1367, in _do_call
return fn(*args)
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1352, in _run_fn
target_list, run_metadata)
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1445, in _call_tf_sessionrun
run_metadata)
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'input_1' with dtype float and shape [?,10 0,100,1]
[[{{node input_1}}]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "finalvideo_2.py", line 630, in
text()
File "finalvideo_2.py", line 498, in text
kikiE(EX_dat,EY_dat)
File "finalvideo_2.py", line 338, in kikiE
x = MyLayer()(input_tensor)
File "/home/usergpu/venv/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py", line 73, in symbolic_fn_wrapper
return func(*args, **kwargs)
File "/home/usergpu/venv/lib/python3.6/site-packages/keras/engine/base_layer.py", line 489, in call
output = self.call(inputs, **kwargs)
File "finalvideo_2.py", line 108, in call
self.W = topology(x, self.W2)
File "finalvideo_2.py", line 128, in topology
x_unpacked = input_tensor.eval()
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py", line 790, in eval
return _eval_using_default_session(self, feed_dict, self.graph, session)
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py", line 5312, in _eval_using_default_session
return session.run(tensors, feed_dict) File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 960, in run
run_metadata_ptr)
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1183, in _run
feed_dict_tensor, options, run_metadata)
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1361, in _do_run
run_metadata)
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1386, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'input_1' with dtype float and shape [?,10 0,100,1]
[[node input_1 (defined at /home/usergpu/venv/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:676) ]]

Original stack trace for 'input_1':
File "finalvideo_2.py", line 630, in
text()
File "finalvideo_2.py", line 498, in text
kikiE(EX_dat,EY_dat)
File "finalvideo_2.py", line 333, in kikiE
input_tensor = Input(shape=X_D[0].shape)
File "/home/usergpu/venv/lib/python3.6/site-packages/keras/engine/input_layer.py", line 178, in Input
input_tensor=tensor)
File "/home/usergpu/venv/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 91, in wrapper
return func(*args, **kwargs)
File "/home/usergpu/venv/lib/python3.6/site-packages/keras/engine/input_layer.py", line 87, in init
name=self.name)
File "/home/usergpu/venv/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py", line 73, in symbolic_fn_wrapper
return func(*args, **kwargs)
File "/home/usergpu/venv/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py", line 676, in placeholder
shape=shape, ndim=ndim, dtype=dtype, sparse=sparse, name=name)
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/keras/backend.py", line 1054, in placeholder
x = array_ops.placeholder(dtype, shape=shape, name=name)
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/ops/array_ops.py", line 2718, in placeholder
return gen_array_ops.placeholder(dtype=dtype, shape=shape, name=name)
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/ops/gen_array_ops.py", line 6032, in placeholder
"Placeholder", dtype=dtype, shape=shape, name=name)
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/framework/op_def_library.py", line 742, in _apply_op_helper
attrs=attr_protos, op_def=op_def)
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/framework/func_graph.py", line 595, in _create_op_internal
compute_device)
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py", line 3322, in _create_op_internal
op_def=op_def)
File "/home/usergpu/venv/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py", line 1756, in init
self._traceback = tf_stack.extract_stack()

你需要提供一个完整的例子。什么是输入张量?如果未正确定义(例如占位符),则无法在不输入值的情况下对其进行计算。嗯。。。。它是一个“占位符”,它不“包含”任何内容。你不能评估空的东西。答案是:里面什么都没有。解决方案是在范围(len(dataset)):model中为x设置一个
。在批处理(dataset[x-1:x,:,:,:],labels[x-1:x])
中对x进行训练,然后在调用方法中将x作为全局变量,然后用dataset[x-1:x,:,:,:,:]中的值填充placeholde?