Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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 为什么我会得到';连接到源节点的无效输出';Tensorflow轮毂KerasLayer出错?_Python_Tensorflow_Keras_Tensorflow Hub - Fatal编程技术网

Python 为什么我会得到';连接到源节点的无效输出';Tensorflow轮毂KerasLayer出错?

Python 为什么我会得到';连接到源节点的无效输出';Tensorflow轮毂KerasLayer出错?,python,tensorflow,keras,tensorflow-hub,Python,Tensorflow,Keras,Tensorflow Hub,Edit:我尝试打开“急切执行”以查看是否能够准确识别问题发生的位置,并且“急切执行”停止了错误并使其成功运行。不知道为什么会这样,不幸的是,这对我真的没有帮助 原始帖子:我对Tensorflow非常陌生,我正在尝试了解如何在tf.keras模型中使用Tensorflow Hub模块。我的目标是创建一个电子邮件分类系统,以便在我的组织中发送电子邮件 我已经使用通用句子编码模块预处理的数据构建了一个模型。这是一个RNN,工作非常有效,但我感兴趣的是是否可以提高我的准确性 现在我想把这个模块直接合并

Edit:我尝试打开“急切执行”以查看是否能够准确识别问题发生的位置,并且“急切执行”停止了错误并使其成功运行。不知道为什么会这样,不幸的是,这对我真的没有帮助

原始帖子:我对Tensorflow非常陌生,我正在尝试了解如何在tf.keras模型中使用Tensorflow Hub模块。我的目标是创建一个电子邮件分类系统,以便在我的组织中发送电子邮件

我已经使用通用句子编码模块预处理的数据构建了一个模型。这是一个RNN,工作非常有效,但我感兴趣的是是否可以提高我的准确性

现在我想把这个模块直接合并到我的神经网络中,这样我就可以训练它了

我在Jupyter笔记本上运行这个

我建立了一个简单的非RNN模型,尝试获得Tensorflow Hub模块培训

打印(“版本:,tf.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
打印(“急切模式:”,tf.executing_急切地()
打印(“中心版本:”,中心版本)
打印(“如果tf.test.is\GPU\u available()则GPU为”,“可用”)否则“不可用”)
集线器模块=”https://tfhub.dev/google/tf2-preview/nnlm-en-dim128/1"
model=models.Sequential()
model.add(hub.KerasLayer(hub_模块,input_shape=[],dtype=tf.string,trainable=True))
model.add(layers.Dense(128,activation='relu'))
model.add(layers.Dense(64,activation='relu'))
model.add(layers.Dense(3,activation='softmax'))
model.build()
model.summary()
compile(优化器='adam',loss='classifical_crossentropy',metrics=['accurity','mae'])
#假数据
train_data=[[“你好”],[“再见,我的朋友”],[“幸福是一片温暖的吐司”]]
列车标签=[[1,0,0],[0,1,0],[0,0,1]]
train_dataset=tf.data.dataset.from_tensor_切片((train_数据,train_标签))
model.fit(train_数据集,epochs=1,verbose=2)
以下是我的完整控制台输出:

Version:  1.14.0
Eager mode:  False
Hub version:  0.6.0
GPU is available
Model: "sequential_5"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
keras_layer_5 (KerasLayer)   (None, 128)               124642688 
_________________________________________________________________
dense_15 (Dense)             (None, 128)               16512     
_________________________________________________________________
dense_16 (Dense)             (None, 64)                8256      
_________________________________________________________________
dense_17 (Dense)             (None, 3)                 195       
=================================================================
Total params: 124,667,651
Trainable params: 124,667,651
Non-trainable params: 0
_________________________________________________________________
WARNING:tensorflow:Expected a shuffled dataset but input dataset `x` is not shuffled. Please invoke `shuffle()` on input dataset.

WARNING:tensorflow:Expected a shuffled dataset but input dataset `x` is not shuffled. Please invoke `shuffle()` on input dataset.

---------------------------------------------------------------------------
InvalidArgumentError                      Traceback (most recent call last)
~\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\client\session.py in _do_call(self, fn, *args)
   1355     try:
-> 1356       return fn(*args)
   1357     except errors.OpError as e:

~\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\client\session.py in _run_fn(feed_dict, fetch_list, target_list, options, run_metadata)
   1338       # Ensure any changes to the graph are reflected in the runtime.
-> 1339       self._extend_graph()
   1340       return self._call_tf_sessionrun(

~\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\client\session.py in _extend_graph(self)
   1373     with self._graph._session_run_lock():  # pylint: disable=protected-access
-> 1374       tf_session.ExtendSession(self._session)
   1375 

InvalidArgumentError: Node 'Adam/gradients/keras_layer_1/StatefulPartitionedCall_grad/StatefulPartitionedCall': Connecting to invalid output 1 of source node keras_layer_1/StatefulPartitionedCall which has 1 outputs

During handling of the above exception, another exception occurred:

InvalidArgumentError                      Traceback (most recent call last)
<ipython-input-11-492e87ad5d5d> in <module>
     28 train_dataset = tf.data.Dataset.from_tensor_slices((train_data, train_labels))
     29 
---> 30 model.fit(train_dataset, epochs=1, verbose=2)

~\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_freq, max_queue_size, workers, use_multiprocessing, **kwargs)
    778           validation_steps=validation_steps,
    779           validation_freq=validation_freq,
--> 780           steps_name='steps_per_epoch')
    781 
    782   def evaluate(self,

~\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\training_arrays.py in model_iteration(model, inputs, targets, sample_weights, batch_size, epochs, verbose, callbacks, val_inputs, val_targets, val_sample_weights, shuffle, initial_epoch, steps_per_epoch, validation_steps, validation_freq, mode, validation_in_fit, prepared_feed_values_from_dataset, steps_name, **kwargs)
    139       reset_dataset_after_each_epoch = True
    140       steps_per_epoch = training_utils.infer_steps_for_dataset(
--> 141           inputs, steps_per_epoch, epochs=epochs, steps_name=steps_name)
    142     input_iterator = _get_iterator(inputs, model._distribution_strategy)
    143 

~\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\training_utils.py in infer_steps_for_dataset(dataset, steps, epochs, steps_name)
   1391   """
   1392   assert isinstance(dataset, dataset_ops.DatasetV2)
-> 1393   size = K.get_value(cardinality.cardinality(dataset))
   1394   if size == cardinality.INFINITE and steps is None:
   1395     raise ValueError('When passing an infinitely repeating dataset, you '

~\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\backend.py in get_value(x)
   2987     return function([], x)(x)
   2988 
-> 2989   return x.eval(session=get_session((x,)))
   2990 
   2991 

~\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\backend.py in get_session(op_input_list)
    460   if not _MANUAL_VAR_INIT:
    461     with session.graph.as_default():
--> 462       _initialize_variables(session)
    463   return session
    464 

~\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\keras\backend.py in _initialize_variables(session)
    877     # marked as initialized.
    878     is_initialized = session.run(
--> 879         [variables_module.is_variable_initialized(v) for v in candidate_vars])
    880     uninitialized_vars = []
    881     for flag, v in zip(is_initialized, candidate_vars):

~\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\client\session.py in run(self, fetches, feed_dict, options, run_metadata)
    948     try:
    949       result = self._run(None, fetches, feed_dict, options_ptr,
--> 950                          run_metadata_ptr)
    951       if run_metadata:
    952         proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)

~\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\client\session.py in _run(self, handle, fetches, feed_dict, options, run_metadata)
   1171     if final_fetches or final_targets or (handle and feed_dict_tensor):
   1172       results = self._do_run(handle, final_targets, final_fetches,
-> 1173                              feed_dict_tensor, options, run_metadata)
   1174     else:
   1175       results = []

~\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\client\session.py in _do_run(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)
   1348     if handle is None:
   1349       return self._do_call(_run_fn, feeds, fetches, targets, options,
-> 1350                            run_metadata)
   1351     else:
   1352       return self._do_call(_prun_fn, handle, feeds, fetches)

~\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\client\session.py in _do_call(self, fn, *args)
   1368           pass
   1369       message = error_interpolation.interpolate(message, self._graph)
-> 1370       raise type(e)(node_def, op, message)
   1371 
   1372   def _extend_graph(self):

InvalidArgumentError: Node 'Adam/gradients/keras_layer_1/StatefulPartitionedCall_grad/StatefulPartitionedCall': Connecting to invalid output 1 of source node keras_layer_1/StatefulPartitionedCall which has 1 outputs
版本:1.14.0
渴望模式:False
集线器版本:0.6.0
GPU可用
型号:“顺序_5”
_________________________________________________________________
层(类型)输出形状参数
=================================================================
keras_第五层(KerasLayer)(无,128)124642688
_________________________________________________________________
密集型_15(密集型)(无,128)16512
_________________________________________________________________
密集型——16(密集型)(无,64)8256
_________________________________________________________________
密集型_17(密集型)(无,3)195
=================================================================
总参数:124667651
可培训参数:124667651
不可训练参数:0
_________________________________________________________________
警告:tensorflow:应为无序数据集,但输入数据集'x'未无序。请在输入数据集上调用'shuffle()'。
警告:tensorflow:应为无序数据集,但输入数据集'x'未无序。请在输入数据集上调用'shuffle()'。
---------------------------------------------------------------------------
InvalidArgumentError回溯(最后一次最近调用)
调用中的~\Anaconda3\envs\tensorflow\lib\site packages\tensorflow\python\client\session.py(self,fn,*args)
1355尝试:
->1356返回fn(*args)
1357除错误外。操作错误为e:
运行fn中的~\Anaconda3\envs\tensorflow\lib\site packages\tensorflow\python\client\session.py(源目录、获取列表、目标列表、选项、运行元数据)
1338#确保图形的任何更改都反映在运行时中。
->1339自扩展图()
1340返回self.\u调用\u tf\u sessionrun(
图中的~\Anaconda3\envs\tensorflow\lib\site packages\tensorflow\python\client\session.py(self)
1373与self._graph._session_run_lock():#pylint:disable=受保护的访问
->1374 TFU会话。扩展会话(自会话)
1375
InvalidArgumentInterfer:节点“Adam/gradients/keras\u layer\u 1/StatefulPartitionedCall\u grad/StatefulPartitionedCall”:连接到具有1个输出的源节点keras\u layer\u 1/StatefulPartitionedCall的无效输出1
在处理上述异常期间,发生了另一个异常:
InvalidArgumentError回溯(最后一次最近调用)
在里面
28 train_dataset=tf.data.dataset.from_tensor_切片((train_数据,train_标签))
29
--->30模型拟合(训练数据集,历元=1,详细=2)
~\Anaconda3\envs\tensorflow\lib\site packages\tensorflow\python\keras\engine\training.py in fit(self、x、y、批大小、历元、冗余、回调、验证拆分、验证数据、洗牌、类权重、样本权重、初始历元、每个历元的步数、验证步骤、验证频率、最大队列大小、工作者、使用多处理、**kwargs)
778验证步骤=验证步骤,
779验证频率=验证频率,
-->780步(每个历元的步数)
781
782 def评估(自我,
模型迭代中的~\Anaconda3\envs\tensorflow\lib\site packages\tensorflow\python\keras\engine\training\u arrays.py(模型、输入、目标、样本权重、批量大小、年代、详细程度、回调、val_输入、val_目标、val_样本权重、无序、初始历元、每历元步长、验证步骤、验证频率、模式、验证拟合、从数据集准备的反馈值、步骤名称、**kwargs)
139每个\u历元后重置\u数据集\u=真
每个历元140步=训练步数。推断数据集的步数(
-->141个输入,每个历元的步骤,历元=历元,步骤名称=步骤名称)
142输入迭代器=\u获取迭代器(输入、模型、分布策略)
143
~\Anaconda3\envs\tensorflow\lib\site pa