将我的输入日期塑造到 keras 模型的问题

问题描述

这是模型定义:

from tensorflow.keras import Model
from tensorflow.keras.layers import Bidirectional
import tensorflow as tf
from tensorflow.keras.datasets import imdb
from tensorflow.keras.layers import Input,Embedding,Dense,LSTM
from tensorflow.keras.losses import BinaryCrossentropy
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.preprocessing.sequence import pad_sequences
from keras_self_attention import ScaledDotProductAttention,SeqSelfAttention
from tensorflow.keras import Model
from tensorflow.keras.layers import Bidirectional

# Model configuration
additional_metrics = ['accuracy','mse']
batch_size = 64
loss_function = BinaryCrossentropy()
number_of_epochs = 10
optimizer = Adam()
validation_split = 0.20
verbosity_mode = 1 

# Define the Keras model
in_data = Input(shape=(None,768),batch_size=batch_size,name='input_sentences')  # every input is a list of sentences
lstm = Bidirectional(LSTM(50,return_sequences=True),name='bi-lstm')(in_data)
att = SeqSelfAttention(attention_activation='sigmoid',name='seqselfatt')(lstm)
att_lstm = LSTM(10,return_sequences=False,name='bi-lstm-att')(att)
output = Dense(5,activation='sigmoid',name='output')(att_lstm)  # 5 outputs 5 -> 1

model = Model(inputs=[in_data],outputs=[output])

# Compile the model
model.compile(optimizer=optimizer,loss=loss_function,metrics=additional_metrics)

# Give a summary
model.summary()

型号:“型号” _________________________________________________________________ 层(类型)输出形状参数#
================================================== ============== input_sentences (InputLayer) [(64,None,768)] 0
_________________________________________________________________ bi-lstm(双向)(64,无,100)327600
_________________________________________________________________ seqselfatt (SeqSelfAttention (64,100) 6465
_________________________________________________________________ bi-lstm-att (LSTM) (64,10) 4440
_________________________________________________________________ 输出(密集)(64,5) 55
================================================== ============== 总参数:338,560 可训练参数:338,560 不可训练参数: 0


这是我的数据的形状:x_train 和 x_test 是数组列表

x_train[0].shape,x_test[0].shape,len(x_train)
# ((2,(3,100)

运行 fit 时出现此错误

history = model.fit(x_train,y_train,epochs=number_of_epochs,verbose=verbosity_mode,# validation_data=(x_test,y_test)) 
                    validation_split=validation_split)

纪元 1/10 -------------------------------------------------- ------------------------- ValueError Traceback(最近调用 最后) 在 () 6 详细=详细模式, 7 #validation_data=(x_test,y_test) ----> 8validation_split=validation_split)

9 帧 /usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py 在适合(自我,x,y,batch_size,纪元,详细,回调, 验证拆分、验证数据、随机播放、类权重、 sample_weight、initial_epoch、steps_per_epoch、validation_steps、 validation_batch_size、validation_freq、max_queue_size、workers、 use_multiprocessing) 1098 _r=1): 1099
callbacks.on_train_batch_begin(step) -> 1100 tmp_logs = self.train_function(iterator) 1101 if data_handler.should_sync: 1102
context.async_wait()

/usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/def_function.py 在 调用(self,*args,**kwds) 第826话 第 827 章 --> 828 结果 = self._call(*args,**kwds) 829编译器=“xla”如果self._experimental_compile else“nonXla” 830 new_tracing_count = self.experimental_get_tracing_count()

/usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/def_function.py 在 _call(self,**kwds) 860 # 在这种情况下,我们没有在第一次调用时创建变量。所以我们可以 861 # 运行第一个跟踪,但如果创建了变量,我们应该会失败。 --> 862 结果 = self._stateful_fn(*args,**kwds) 第863话 864 raise ValueError("在非第一次调用函数时创建变量"

/usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/function.py 在 调用(self,**kwargs) 2939 with self._lock:
第2940章 -> 2941filtered_flat_args)= self._maybe_define_function(args,kwargs)2942返回graph_function._call_flat(2943
Filtered_flat_args,capture_inputs=graph_function.captured_inputs) # pylint:禁用=受保护的访问

/usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/function.py 在_maybe_define_function(self,args,kwargs) 3356
self._function_cache.missed 中的 call_context_key):3357
返回 self._define_function_with_shape_relaxation( -> 3358 args、kwargs、flat_args、filtered_flat_args、cache_key_context) 3359 3360 self._function_cache.missed.add(call_context_key)

/usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/function.py 在 _define_function_with_shape_relaxation(self,kwargs,flat_args、filtered_flat_args、cache_key_context) 3278 3279
graph_function = self._create_graph_function( -> 3280 args,override_flat_arg_shapes=relaxed_arg_shapes) 3281
self._function_cache.arg_relaxed[rank_only_cache_key] = graph_function 3282

/usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/function.py 在 _create_graph_function(self,3204 arg_names=arg_names,
3205 override_flat_arg_shapes=override_flat_arg_shapes, -> 3206 capture_by_value=self._capture_by_value),3207 self._function_attributes,3208
function_spec=self.function_spec,

/usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/func_graph.py 在 func_graph_from_py_func(name,python_func,签名,func_graph,autograph_options,add_control_dependencies,arg_names、op_return_value、集合、capture_by_value、 override_flat_arg_shapes) 988 _,original_func = tf_decorator.unwrap(python_func) 989 --> 990 func_outputs = python_func(*func_args,**func_kwargs) 991 992 # 不变式:func_outputs 只包含张量、复合张量、

/usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/def_function.py 在wrapped_fn(*args,**kwds) 632 xla_context.Exit() 633 其他: --> 634 out = weak_wrapped_fn().包裹(*args,**kwds) 635返回 636

/usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/func_graph.py 在包装器中(*args,**kwargs) 第 975 回 第 976 章 --> 977 引发 e.ag_error_Metadata.to_exception(e) 978 其他: 979加薪

错误:在用户代码中:

/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:805

train_function * 返回 step_function(self,iterator) /usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:795 step_function ** 输出 = model.distribute_strategy.run(run_step,args=(data,)) /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/distribute_lib.py:1259 跑步 返回 self._extended.call_for_each_replica(fn,args=args,kwargs=kwargs) /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/distribute_lib.py:2730 call_for_each_replica 返回 self._call_for_each_replica(fn,kwargs) /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/distribute_lib.py:3417 _call_for_each_replica 返回 fn(*args,**kwargs) /usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:788 运行步骤** 输出 = model.train_step(data) /usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:754 train_step y_pred = self(x,training=True) /usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/base_layer.py:998 致电 input_spec.assert_input_compatibility(self.input_spec,输入,self.name) /usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/input_spec.py:207 assert_input_compatibility ' 输入张量。收到的输入:' + str(inputs))

ValueError: Layer model_1 expects 1 input(s),but it received 100 input tensors. Inputs received: [<tf.Tensor 'IteratorGetNext:0'

shape=(None,768) dtype=float32>,,

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)