Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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 3.x tensorflow.keras:在图层“处断开连接的图形”;时间分配;_Python 3.x_Keras_Tensorflow2.0 - Fatal编程技术网

Python 3.x tensorflow.keras:在图层“处断开连接的图形”;时间分配;

Python 3.x tensorflow.keras:在图层“处断开连接的图形”;时间分配;,python-3.x,keras,tensorflow2.0,Python 3.x,Keras,Tensorflow2.0,我试图在层次注意力网络(HAN)的末尾添加两个完全连接的层,以便对文本执行二元分类任务。我的修改产生了一个多输入模型,它应该接受一些文本输入(通过HAN)和一些额外的值(浮动),我需要通过密集网络。但我遇到了以下错误: ValueError:Graph disconnected:无法获取层“time\u distributed\u 1”处的张量张量值(“word\u输入:0”,shape=(无,100,7),dtype=float32)。访问以下以前的层时没有问题:[] 我在没有修改的情况下运行

我试图在层次注意力网络(HAN)的末尾添加两个完全连接的层,以便对文本执行二元分类任务。我的修改产生了一个多输入模型,它应该接受一些文本输入(通过HAN)和一些额外的值(浮动),我需要通过密集网络。但我遇到了以下错误:

ValueError:Graph disconnected:无法获取层“time\u distributed\u 1”处的张量张量值(“word\u输入:0”,shape=(无,100,7),dtype=float32)。访问以下以前的层时没有问题:[]

我在没有修改的情况下运行了HAN网络,并且能够成功地将其训练到我的数据(文本上的二进制分类问题)

这是模型的代码:

embedding_layer = Embedding(len(char_index) + 1,
                            EMBEDDING_DIM,
                            input_length=MAX_WORD_LENGTH,
                            trainable=True)

char_input = Input(shape=(MAX_WORD_LENGTH,), dtype='float32', name = 'char_input')
char_sequences = embedding_layer(char_input)
char_lstm = Bidirectional(LSTM(100, return_sequences=True))(char_sequences)
char_dense = TimeDistributed(Dense(200))(char_lstm)
char_att = AttentionWithContext()(char_dense)
charEncoder = Model(char_input, char_att) 

words_input = Input(shape=(MAX_WORDS, MAX_WORD_LENGTH), dtype='float32', name = 'word_input')
words_encoder = TimeDistributed(charEncoder)(words_input) 
words_lstm = Bidirectional(LSTM(100, return_sequences=True))(words_encoder)
words_dense = TimeDistributed(Dense(200))(words_lstm)
words_att = AttentionWithContext()(words_dense)
preds = Dense(1, activation='sigmoid')(words_att)
# model = Model(words_input, preds)
sentEncoder = Model(words_input, preds)

stats_input = Input(shape = (8,), name = 'stat_input')
stats_x = Dense(4, activation = 'relu')(stats_input)
stats_x_2 = Dense(2, activation = 'relu')(stats_x)
stats_x_3 = Dense(1, activation = 'sigmoid')(stats_x_2)

final_layer = Add()([preds, stats_x_3])
out = Dense(1, activation = 'sigmoid')(final_layer)

merged_output_model = Model(stats_input, out)


model = Model(inputs = [char_input, stats_input], outputs = out)

model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['acc'])
# plot_model(model, to_file='model.png', show_shapes = True)

model.summary()

earlyCallback = EarlyStopping(patience = 5, verbose = 1)

model.fit(
    {"char_input": x_train, "stat_input": stats_train},
    y_train,
    validation_data = ({"char_input": x_val, "stat_input": stats_val}, y_val),
    epochs = 600,
    callbacks = [earlyCallback]
)

这是kaggle链接,我使用的是HAN模型:

我的全部代码:

回溯:

Traceback (most recent call last):
  File "han_w_stats.py", line 219, in <module>
    merged_output_model = Model(stats_input, out)
  File "/home/lenovo/venvs/keras-tf/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py", line 242, in __new__
    return functional.Functional(*args, **kwargs)
  File "/home/lenovo/venvs/keras-tf/lib/python3.8/site-packages/tensorflow/python/training/tracking/base.py", line 457, in _method_wrapper
    result = method(self, *args, **kwargs)
  File "/home/lenovo/venvs/keras-tf/lib/python3.8/site-packages/tensorflow/python/keras/engine/functional.py", line 115, in __init__
    self._init_graph_network(inputs, outputs)
  File "/home/lenovo/venvs/keras-tf/lib/python3.8/site-packages/tensorflow/python/training/tracking/base.py", line 457, in _method_wrapper
    result = method(self, *args, **kwargs)
  File "/home/lenovo/venvs/keras-tf/lib/python3.8/site-packages/tensorflow/python/keras/engine/functional.py", line 190, in _init_graph_network
    nodes, nodes_by_depth, layers, _ = _map_graph_network(
  File "/home/lenovo/venvs/keras-tf/lib/python3.8/site-packages/tensorflow/python/keras/engine/functional.py", line 926, in _map_graph_network
    raise ValueError('Graph disconnected: '
ValueError: Graph disconnected: cannot obtain value for tensor Tensor("word_input:0", shape=(None, 100, 7), dtype=float32) at layer "time_distributed_1". The following previous layers were accessed without issue: []
回溯(最近一次呼叫最后一次):
文件“han_w_stats.py”,第219行,在
合并输出模型=模型(统计输入,输出)
文件“/home/lenovo/venvs/keras tf/lib/python3.8/site packages/tensorflow/python/keras/engine/training.py”,第242行,新__
返回functional.functional(*args,**kwargs)
文件“/home/lenovo/venvs/keras tf/lib/python3.8/site packages/tensorflow/python/training/tracking/base.py”,第457行,在方法包装中
结果=方法(自身、*args、**kwargs)
文件“/home/lenovo/venvs/keras-tf/lib/python3.8/site-packages/tensorflow/python/keras/engine/functional.py”,第115行,在__
自初始化图网络(输入、输出)
文件“/home/lenovo/venvs/keras tf/lib/python3.8/site packages/tensorflow/python/training/tracking/base.py”,第457行,在方法包装中
结果=方法(自身、*args、**kwargs)
文件“/home/lenovo/venvs/keras-tf/lib/python3.8/site-packages/tensorflow/python/keras/engine/functional.py”,第190行,在网络初始图中
节点,节点,按深度,层,映射图网络(
文件“/home/lenovo/venvs/keras-tf/lib/python3.8/site-packages/tensorflow/python/keras/engine/functional.py”,第926行,在网络图中
raise VALUE ERROR('图形已断开连接:'
ValueError:Graph disconnected:无法获取层“time\u distributed\u 1”处的张量张量值(“word\u input:0”,shape=(None,100,7),dtype=float32)。访问以下以前的层时没有问题:[]

你需要传递所有的输入…是model=model(输入=[char\u input,words\u input,stats\u input],outputs=out)Hello@MarcoCerliani,恐怕不行。它返回了与以前相同的错误。另外,我只有两个输入(文本和一行数字)输入到模型中。我不明白如何包含“words\u input”会有帮助的。你需要传递所有的输入…它是model=model(输入=[char\u input,words\u input,stats\u input],outputs=out)Hello@MarcoCerliani,恐怕不行。它返回了和以前一样的错误。另外,我只有2个输入(文本和一行数字)输入到模型中。我不明白如何包括“文字输入”会有帮助。