首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >"ValueError:当向模型提供符号张量时,我们期望张量具有静态批量大小“是什么意思?

"ValueError:当向模型提供符号张量时,我们期望张量具有静态批量大小“是什么意思?
EN

Stack Overflow用户
提问于 2019-01-17 09:33:02
回答 2查看 3K关注 0票数 1

我正在使用keras构建一个预测糖尿病的神经网络。然而,我遇到了一个ValueError:当将符号张量提供给模型时,我们希望张量具有静态批量大小。

我试着改变输入形状,但还是卡住了。

代码语言:javascript
运行
复制
num_classes = 2
from keras.layers import Input, Dense
from keras.models import Model

# This returns a tensor
inputs = Input(shape=(784,))

# a layer instance is callable on a tensor, and returns a tensor
x = Dense(64, activation='relu')(inputs)
x = Dense(64, activation='relu')(x)
predictions = Dense(10, activation='sigmoid')(x)

# This creates a model that includes
# the Input layer and three Dense layers
model = Model(inputs=inputs, outputs=predictions)
model.compile(optimizer='rmsprop',
          loss='binary_crossentropy',
          metrics=['accuracy'])
model.fit(x,y)  # starts training

在运行ValueError之后:当将符号张量提供给模型时,我们希望张量具有静态批量大小。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-17 09:50:17

由于这些行,x是一个Layer对象

代码语言:javascript
运行
复制
x = Dense(64, activation='relu')(inputs)
x = Dense(64, activation='relu')(x)

模型应该基于实际数据进行拟合,但您需要传入一个Layer对象:

代码语言:javascript
运行
复制
model.fit(x,y)  # starts training

简单地说,您的x是一个Layer对象,它是一个符号张量,keras试图将其视为数据张量,但失败了。

要解决这个问题,只需确保您传递的x确实是您的x训练数据。

票数 3
EN

Stack Overflow用户

发布于 2019-06-02 23:01:34

因为当您输入模型(x,y)时,x不是训练数据,所以我将您的代码修复为:

代码语言:javascript
运行
复制
model.fit(x_train,y_train)  # starts training
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54227779

复制
相关文章

相似问题

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