我正在建立一个以keras和tensorfrolw为后端的神经网络。它具有0到9的3个输入和0到9的3个输出。数据以numpy数组的形式提供:[[''1''4''0'] ['6''2''1'] ...]。
我是深度学习的新手,这是我的第一个神经网络之一,所以我迷路了,不知道是什么导致了这个错误。
我知道,如果有人对此有任何见解,我可能需要更改优化器,损失,指标以及可能还有更多属性。
model = keras.Sequential([
keras.layers.Flatten(3, input_shape=(3, 3)),
keras.layers.Dense(9, activation="relu"),
keras.layers.Dense(9, activation="relu"),
keras.layers.Dense(3, activation="relu")
])
model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"])
model.fit(training_input, training_output, epochs=5)
运行此程序时出现此错误:
Traceback (most recent call last):
File "C:/Users/---/---/---/---/---/---/---/main.py", line 15, in <module>
keras.layers.Flatten(3, input_shape=(3, 3)),
File "C:\Users\---\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\keras\layers\core.py", line 571, in __init__
self.data_format = conv_utils.normalize_data_format(data_format)
File "C:\Users\---\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\keras\utils\conv_utils.py", line 191, in normalize_data_format
data_format = value.lower()
AttributeError: 'int' object has no attribute 'lower' \
答案 0 :(得分:0)
请检查Keras Documentation是否使用Flatten()
层。您正在滥用Flatten
。我建议您在模型之前对数据进行重塑,然后将其反馈到模型中。
答案 1 :(得分:0)
我本来应该为展平层提供参数的。爆破:
import tensorflow.keras.layers as l
h = i = l.Input(shape=(10, 5))
h = l.Flatten(50)(h) # don't do this!
o = l.Dense(50)(h)
model = keras.Model(inputs=i, outputs=o)
model.compile(optimizer='adam', loss='mse')
未指定参数的情况下,模型会编译:
import tensorflow.keras.layers as l
h = i = l.Input(shape=(10, 5))
h = l.Flatten()(h) # do this!
o = l.Dense(50)(h)
model = keras.Model(inputs=i, outputs=o)
model.compile(optimizer='adam', loss='mse')