簡體   English   中英

AttributError: 'NoneType' 對象沒有屬性 'dtype'

[英]AttributError: 'NoneType' object has no attribute 'dtype'

我正在構建一個簡單的循環神經網絡,其中包含一個帶有全連接層的 lstm 層,以對每一行數據進行分類。 我的數據“x_train”的形狀是形狀為 (210,240,1) 的 nd.array,“y_train”是形狀為 (210,) 的 nd.array。 並且模型輸出正常。 但是,當我運行model.fit() 時,總是出現錯誤:AttributeError: 'NoneType' object has no attribute 'dtype'。

我不知道下面的代碼有什么問題。

#%%
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

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

#%%
model = tf.keras.models.Sequential([
  tf.keras.layers.LSTM(8),
  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,))

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

以下是整個錯誤信息:

Traceback (most recent call last):

  File "D:\運籌優化\機器學習課程項目\時序數據預測\rnn_exploration.py", line 68, in <module>
    model.fit(x_train, y_train, epochs=20)

  File "D:\python\anaconda\anaconda\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 819, in fit
    use_multiprocessing=use_multiprocessing)

  File "D:\python\anaconda\anaconda\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 235, in fit
    use_multiprocessing=use_multiprocessing)

  File "D:\python\anaconda\anaconda\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 593, in _process_training_inputs
    use_multiprocessing=use_multiprocessing)

  File "D:\python\anaconda\anaconda\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 646, in _process_inputs
    x, y, sample_weight=sample_weights)

  File "D:\python\anaconda\anaconda\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 2360, in _standardize_user_data
    self._compile_from_inputs(all_inputs, y_input, x, y)

  File "D:\python\anaconda\anaconda\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 2618, in _compile_from_inputs
    experimental_run_tf_function=self._experimental_run_tf_function)

  File "D:\python\anaconda\anaconda\envs\tensorflow\lib\site-packages\tensorflow_core\python\training\tracking\base.py", line 457, in _method_wrapper
    result = method(self, *args, **kwargs)

  File "D:\python\anaconda\anaconda\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 416, in compile
    endpoint.create_training_target(t, run_eagerly=self.run_eagerly)

  File "D:\python\anaconda\anaconda\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 3023, in create_training_target
    self.loss_fn, K.dtype(self.output))

  File "D:\python\anaconda\anaconda\envs\tensorflow\lib\site-packages\tensorflow_core\python\keras\backend.py", line 1237, in dtype
    return x.dtype.base_dtype.name

AttributeError: 'NoneType' object has no attribute 'dtype'

任何幫助,將不勝感激!

問題仍然存在於 numpy 1.21.3,降級到 1.19.5 有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM