Python tensorflow连接中的元组索引超出范围
这是我第一次使用连接, 我正在为一个深度学习项目构建一个NN, 一个类定义连接,该类运行良好 下一个def包括concatenate,它给了我一个“元组索引超出范围” 我不知道该在哪里解决这个问题。。 我正在上传部分代码,请帮忙Python tensorflow连接中的元组索引超出范围,python,tensorflow,deep-learning,tuples,concatenation,Python,Tensorflow,Deep Learning,Tuples,Concatenation,这是我第一次使用连接, 我正在为一个深度学习项目构建一个NN, 一个类定义连接,该类运行良好 下一个def包括concatenate,它给了我一个“元组索引超出范围” 我不知道该在哪里解决这个问题。。 我正在上传部分代码,请帮忙 def call(self, x): self.conc = concatenate([]) x = self.flatten(x) r = x # residual / short-cut / skip connection if se
def call(self, x):
self.conc = concatenate([])
x = self.flatten(x)
r = x # residual / short-cut / skip connection
if self.probe_num == -1: # for network training
for (i, layer) in enumerate(self.my_layers):
if i == SkipLayer_2:
x = self.conc([x, r])
x = layer(x)
return x
else: # for probe training
for (i, layer) in enumerate(self.my_layers[0:self.probe_num]):
if i == SkipLayer_2:
x = self.conc([x, r])
x = layer(x)
x = tf.stop_gradient(x)
probe = self.probes[self.probe_num]
return probe(x)
及
给我
IndexError Traceback (most recent call last)
<ipython-input-22-bfb6ffd6d257> in <module>()
51 for probe_num in range(len(model.my_probe)):
52 model.probe_num = probe_num
---> 53 model(X_train[0:Batch_2])
54 weights = model.get_weights()
55
<ipython-input-21-6f2bfe4c9db1> in call(self, x)
21 # Call
22 def call(self, x):
---> 23 self.conc = concatenate([])
24 x = self.flatten(x)
25 r = x # residual / short-cut / skip connection
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/layers/merge.py in concatenate(inputs, axis, **kwargs)
929 A tensor, the concatenation of the inputs alongside axis `axis`.
930 """
--> 931 return Concatenate(axis=axis, **kwargs)(inputs)
7 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/layers/merge.py in build(self, input_shape)
490 def build(self, input_shape):
491 # Used purely for shape validation.
--> 492 if not isinstance(input_shape[0], tuple) or len(input_shape) < 2:
493 raise ValueError('A `Concatenate` layer should be called '
494 'on a list of at least 2 inputs')
IndexError: tuple index out of range
索引器错误回溯(最近一次调用)
在()
51对于范围内的探针数量(len(model.my_probe)):
52 model.probe\u num=probe\u num
--->53型(X_系列[0:批次2])
54权重=模型。获取权重()
55
通话中(self,x)
21#打电话
22 def呼叫(自我,x):
--->23 self.conc=连接([])
24 x=自展平(x)
25 r=x#剩余/捷径/跳过连接
/连接中的usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/layers/merge.py(输入,轴,**kwargs)
929 A张量,沿轴“axis”的输入串联。
930 """
-->931返回串联(轴=轴,**kwargs)(输入)
7帧
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/layers/merge.py in build(self,input_shape)
490 def构建(自、输入_形状):
491#仅用于形状验证。
-->492如果不存在(输入_形[0],元组)或len(输入_形)<2:
493 raise VALUERROR('应调用'CONTAINATE'层'
494'在至少2个输入的列表上')
索引器错误:元组索引超出范围
试试这个:
self.conc = tf.keras.layers.Concatenate()
并将该行放入init(),而不是call()
self.conc = tf.keras.layers.Concatenate()