首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ValueError:将符号张量提供给模型时,我们希望张量具有静态批量大小

ValueError:将符号张量提供给模型时,我们希望张量具有静态批量大小
EN

Stack Overflow用户
提问于 2018-07-10 05:38:20
回答 0查看 10.5K关注 0票数 1

我是Keras新手,在尝试使用Python 3.6构建text-classification CNN模型时遇到了这个错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "model.py", line 94, in <module>
    model.fit([x1, x2], y_label, batch_size=batch_size, epochs=epochs, verbose=1, callbacks=[checkpoint], validation_split=0.2)  # starts training
  File "/../../anaconda3/lib/python3.6/site-packages/keras/engine/training.py", line 955, in fit
    batch_size=batch_size)
  File "/../../anaconda3/lib/python3.6/site-packages/keras/engine/training.py", line 754, in _standardize_user_data
    exception_prefix='input')
  File "/../../anaconda3/lib/python3.6/site-packages/keras/engine/training_utils.py", line 90, in standardize_input_data
    data = [standardize_single_array(x) for x in data]
  File "/../../anaconda3/lib/python3.6/site-packages/keras/engine/training_utils.py", line 90, in <listcomp>
    data = [standardize_single_array(x) for x in data]
  File "/../../anaconda3/lib/python3.6/site-packages/keras/engine/training_utils.py", line 23, in standardize_single_array
    'Got tensor with shape: %s' % str(shape))
ValueError: When feeding symbolic tensors to a model, we expect thetensors to have a static batch size. Got tensor with shape: (None, 50, 100)

我的模型代码如下:

代码语言:javascript
复制
print("\nCreating Model...")
x1 = Input(shape=(seq_len1, 100), name='x1')
x2 = Input(shape=(seq_len2, 100), name='x2')
x1_r = Reshape((seq_len1, embedding_dim, 1))(x1)
x2_r = Reshape((seq_len2, embedding_dim, 1))(x2)

conv_0 = Conv2D(num_filters, kernel_size=(filter_sizes[0], 1), padding='valid', kernel_initializer='normal', activation='relu')
.
# Conv layers with different filter sizes
.    
maxpool = MaxPool2D(pool_size=(2, 1), strides=(1,1), padding='valid')

output1 = conv_0(x1_r)
output1 = maxpool(output1)
output1 = conv_1(output1)
output1 = maxpool(output1)
output1 = conv_2(output1)
output1 = maxpool(output1)
.
# Same for output2
.
concatenated_tensor = Concatenate(axis=1)([output1, output2])
flatten = Flatten()(concatenated_tensor)
.
# Dense layers
. 
# this creates a model that includes
model = Model(inputs=[x1, x2], outputs=[output])
.    
.
model.fit([x1, x2], y_label, batch_size=batch_size, epochs=epochs, verbose=1, callbacks=[checkpoint], validation_split=0.2)  # starts training

我在model.fit行中遇到了这个错误。这里seq_len1 = 50,seq_len2 = 120。请帮我解决这个问题。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51254382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档