【问题标题】:Keras : AttributeError: 'int' object has no attribute 'ndim' when using model.fitKeras:AttributeError:'int'对象在使用model.fit时没有属性'ndim'
【发布时间】:2018-07-19 21:02:53
【问题描述】:

尝试拟合模型时出现此错误

我正在使用 Keras,每次我尝试拟合我的模型时

padded_model.fit(train_X, train_y, epochs=50, verbose=1)

我得到这个错误:

'int' 对象没有属性 'ndim'

【问题讨论】:

  • 什么是train_xtrain_y?它们需要是 numpy 数组或 numpy 数组列表。
  • @umutto 我有 train_c 并使用 train_test_split 训练 y:'train_X, test_X, train_y, 'test_y = train_test_split(padded_docs, y, train_size=0.7, test_size=0.3, random_state=123)'
  • 请使用python中的type()函数包含train_X和train_y的类型。

标签: python tensorflow keras anaconda


【解决方案1】:

如果train_xtrain_y 是普通的Python 列表,它们没有.ndim 属性。只有 Numpy 数组具有表示维数的此属性。

(https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.ndarray.ndim.html)

【讨论】:

  • 所以问题是函数 fit 不能处理列表?
  • 基本可以,但也不推荐使用列表。 Numpy 是一个用于加速数值计算的特殊包。使用纯 Python 列表要慢得多,因此不推荐用于此目的。但是如果安装了模块,很容易将列表转换为 Numpy 数组。只需将列表传递给数组构造函数:x = np.array([1.0, 2.0, 3.0])
猜你喜欢
  • 2021-11-15
  • 2020-12-11
  • 2021-02-19
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 2020-03-20
  • 2018-10-25
  • 2018-07-07
相关资源
最近更新 更多