Keras 教程错误:NameError:未定义名称“层”

The*_*ter 3 python python-3.x keras tensorflow keras-layer

我正在尝试按照此Keras 教程进行操作,但是在使用命令进行编译时遇到以下错误python3 test.py:

Traceback (most recent call last):
  File "test.py", line 13, in <module>
    layers.Dense(64, activation='sigmoid')
NameError: name 'layers' is not defined
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

import tensorflow as tf
from tensorflow import keras

model = keras.Sequential()
# Adds a densely-connected layer with 64 units to the model:
model.add(keras.layers.Dense(64, activation='relu'))
# Add another:
model.add(keras.layers.Dense(64, activation='relu'))
# Add a softmax layer with 10 output units:
model.add(keras.layers.Dense(10, activation='softmax'))

# Create a sigmoid layer:
layers.Dense(64, activation='sigmoid')

# A linear layer with L1 regularization of factor 0.01 applied to the kernel matrix:
layers.Dense(64, kernel_regularizer=keras.regularizers.l1(0.01))
# A linear layer with L2 regularization of factor 0.01 applied to the bias vector:
layers.Dense(64, bias_regularizer=keras.regularizers.l2(0.01))

# A linear layer with a kernel initialized to a random orthogonal matrix:
layers.Dense(64, kernel_initializer='orthogonal')
Run Code Online (Sandbox Code Playgroud)

Python版本:3.6.6

操作系统:MacOS High Sierra

我也在命令行(tensorflow)$环境中做这一切。

Luc*_*tti 6

怎么了

首先,python 向您发出信号,layers脚本范围内不存在具有名称的对象。

但实际的错误是代码是从TensorFlow 的 Keras 文档中复制出来的,但在文档中,代码的第二部分仅用于解释在model.add(...)调用中实例化的内容。

所以只需删除所有以 开头的代码layers,因为它只是一个解释。

import tensorflow as tf
from tensorflow import keras

model = keras.Sequential()
# Adds a densely-connected layer with 64 units to the model:
model.add(keras.layers.Dense(64, activation='relu'))
# Add another:
model.add(keras.layers.Dense(64, activation='relu'))
# Add a softmax layer with 10 output units:
model.add(keras.layers.Dense(10, activation='softmax'))
Run Code Online (Sandbox Code Playgroud)

进一步阅读

您应该考虑在Keras 文档中了解Keras。


小智 6

对我来说,导入图层就 from tensorflow.keras import layers 完成了这项工作。