"unexpected indent" 或 "object has no attribute 'compile'" 错误
"unexpected indent" or "object has no attribute 'compile'" errors
我正在学习 Tensorflow 教程,并且已经开始进行基本回归 basic regression tutorial。当我来到Create the Model部分时,下面的代码报错:
def build_model():
model = keras.Sequential([
keras.layers.Dense(64, activation=tf.nn.relu,
input_shape=(train_data.shape[1],)),
keras.layers.Dense(64, activation=tf.nn.relu),
keras.layers.Dense(1)
])
optimizer = tf.train.RMSPropOptimizer(0.001)
model.compile(loss='mse',
optimizer=optimizer,
metrics=['mae'])
return model
model = build_model()
model.summary()
我明白了
>>> optimizer = tf.train.RMSPropOptimizer(0.001)
File "<stdin>", line 1
optimizer = tf.train.RMSPropOptimizer(0.001)
^
IndentationError: unexpected indent
如果我取消 optimizer = ...
行的缩进,下一行会出现同样的错误。所以我取消了 model.compile ...
行的缩进,我得到了这个:
>>> model.compile(loss='mse',
... optimizer=optimizer,
... metrics=['mae'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'compile'
...接着是一堆其他错误,可能是由那个错误引起的。
其他教程效果很好。有人可以指出问题吗?
通过这行报错信息
File "<stdin>", line 1
很明显,您将代码直接写给了 Python 解释器 ,并根据该解释器的提示
>>>
很明显你写了
optimizer = tf.train.RMSPropOptimizer(0.001)
作为最高(模块)级别上的新命令,而不是作为函数定义的一部分。
如何修复:
您必须在 >>>
提示符之后编写 def build_model():
命令,并且在 ...
提示符之后编写此函数定义的所有其他命令,缩进正确,最多return model
命令。
(return model
命令后,按两次回车返回>>>
提示符,然后继续写其他命令。)
我正在学习 Tensorflow 教程,并且已经开始进行基本回归 basic regression tutorial。当我来到Create the Model部分时,下面的代码报错:
def build_model():
model = keras.Sequential([
keras.layers.Dense(64, activation=tf.nn.relu,
input_shape=(train_data.shape[1],)),
keras.layers.Dense(64, activation=tf.nn.relu),
keras.layers.Dense(1)
])
optimizer = tf.train.RMSPropOptimizer(0.001)
model.compile(loss='mse',
optimizer=optimizer,
metrics=['mae'])
return model
model = build_model()
model.summary()
我明白了
>>> optimizer = tf.train.RMSPropOptimizer(0.001)
File "<stdin>", line 1
optimizer = tf.train.RMSPropOptimizer(0.001)
^
IndentationError: unexpected indent
如果我取消 optimizer = ...
行的缩进,下一行会出现同样的错误。所以我取消了 model.compile ...
行的缩进,我得到了这个:
>>> model.compile(loss='mse',
... optimizer=optimizer,
... metrics=['mae'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'compile'
...接着是一堆其他错误,可能是由那个错误引起的。
其他教程效果很好。有人可以指出问题吗?
通过这行报错信息
File "<stdin>", line 1
很明显,您将代码直接写给了 Python 解释器 ,并根据该解释器的提示
>>>
很明显你写了
optimizer = tf.train.RMSPropOptimizer(0.001)
作为最高(模块)级别上的新命令,而不是作为函数定义的一部分。
如何修复:
您必须在 >>>
提示符之后编写 def build_model():
命令,并且在 ...
提示符之后编写此函数定义的所有其他命令,缩进正确,最多return model
命令。
(return model
命令后,按两次回车返回>>>
提示符,然后继续写其他命令。)