python - “张量”对象没有属性 'lower'

标签 python tensorflow machine-learning keras conv-neural-network

我正在用 14 个新类微调 MobileNet。当我通过以下方式添加新图层时:

x=mobile.layers[-6].output
x=Flatten(x)
predictions = Dense(14, activation='softmax')(x)
model = Model(inputs=mobile.input, outputs=predictions)

我得到错误:

'Tensor' object has no attribute 'lower'

同时使用:

model.compile(Adam(lr=.0001), loss='categorical_crossentropy', metrics=['accuracy'])
model.fit_generator(train_batches, steps_per_epoch=18,
                validation_data=valid_batches, validation_steps=3, epochs=60, verbose=2)

我得到错误:

Error when checking target: expected dense_1 to have 4 dimensions, but got array with shape (10, 14)

降低 是什么意思?我看到了其他微调脚本,除了在本例中为 x 的模型名称外,没有其他参数。

最佳答案

张量必须在调用层时传递给层,而不是作为参数。因此它必须是这样的:

x = Flatten()(x)  # first the layer is constructed and then it is called on x

为了更清楚,相当于这样:

flatten_layer = Flatten()  # instantiate the layer
x = flatten_layer(x)       # call it on the given tensor

关于python - “张量”对象没有属性 'lower',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53153790/

相关文章:

python - 为什么通过共享内存的通信比通过队列慢得多?

python - GAE webapp2 删除特定用户的所有 UserToken(删除所有 sessios)

python - 在二维数据上拟合抛物线——已编辑

Python:如何将 Pandas Dataframe 行值转换为单独的列?

python - 在 PyCharm 的虚拟环境中更新 Tensorflow 二进制文件以使用 AVX2

algorithm - 模拟退火是一种蒙特卡洛方法吗?

python - 如何在 Anaconda 中将 Python 从 3.7 降级到 3.5

Java Tensorflow + Keras 等价于 model.predict()

python - 决策树分类器我不断收到 NaN 错误

ubuntu - weka 令人困惑的 StringToWordVector 过滤器输出