使用tf.keras.layers.Reshape时发生TypeError

时间:2018-09-14 00:06:58

标签: python tensorflow machine-learning keras

在Keras中建立模型时,我遇到此错误:

import utils from '../../../utils';

const { email, strings, errors } = utils;
const { init: error, BAD_REQUEST } = errors;

const validate = (req, res, next) => {
  const { email: value } = req.body;

  return next();
};

export default {
  validate
}

最初在构建模型时(而不是在执行过程中)发生错误,更具体地说是在此代码段的最后一行:

printWidth
  

侧面说明:我使用的是tf.keras.layers.Dense,IMAGE_SIZE是整数,vanilla_architecture是布尔值,n是整数

很明显,致密层将沿着浮点张量通过,因为这是机器学习操作。问题似乎是Reshape需要整数张量。我阅读了文档,但是那里没有信息。

这是我尝试过的一些事情:

  • 使用tf.reshape
    • 同一期问题
  • 使用numpy重塑
    • 仅平原不起作用
  • 读取示例代码,例如this的54
    • 他们似乎和我做同样的事情,但他们的作品有效

奇怪的部分是,当使用急切执行时,它工作得很好。我不想启用急切的执行,因为我想使用张量板。

1 个答案:

答案 0 :(得分:1)

解决方案是在此行中使用整数除法:

(IMAGE_SIZE//4, IMAGE_SIZE//4, (n if vanilla_architecture else 3*n)),

类型错误不是由于张量引起的,而是IMAGE_SIZE / 4返回浮点数