You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow构建LSTM模型运行fit时报NoneType无dtype属性如何解决

问题原因

你使用的是TensorFlow 1.x版本,该版本的Keras Sequential模型在未显式指定输入形状、也没有手动触发build逻辑的情况下,不会在fit阶段自动完成模型权重的初始化推导,导致模型输出张量为None,读取dtype属性时就触发了本次报错。

解决方案

有两种可行的修改方式,任选其一即可:

  • 方式1:在LSTM层定义时显式指定输入形状,你的单条样本维度为(240,1),直接给第一层加input_shape参数
  • 方式2:在model.compile之后、model.fit之前,手动调用model.build(input_shape=(None, 240, 1))完成模型初始化,其中None代表样本数量可变
修正后可运行的完整代码
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

import tensorflow as tf
import pandas as pd
import numpy as np

# 方式1:定义时指定输入形状
model = tf.keras.models.Sequential([
  tf.keras.layers.LSTM(8, input_shape=(240, 1)),
  tf.keras.layers.Dense(units = 2)
])

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
              loss = loss_fn)

x_train = np.random.randn(210,240,1)
y_train = np.random.binomial(1, 0.5,(210,))

# 方式2:如果不用方式1,取消下面一行注释即可
# model.build(input_shape=(None, 240, 1))

model.fit(x_train, y_train, epochs=20)

内容的提问来源于stack exchange,提问作者zlq147

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:54:03