Python tensorflow连接中的元组索引超出范围

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

这是我第一次使用连接, 我正在为一个深度学习项目构建一个NN, 一个类定义连接,该类运行良好

下一个def包括concatenate,它给了我一个“元组索引超出范围” 我不知道该在哪里解决这个问题。。 我正在上传部分代码,请帮忙

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()