简体   繁体   中英

Keras Tutorial Error: NameError: name 'layers' is not defined

I am trying to follow this Keras tutorial, but I encounter the following error when compiling using the command 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

My code is as follows:

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')

Python version: 3.6.6

Operating System: MacOS High Sierra

I am also doing this all in the command line (tensorflow)$ environment.

What is wrong

First of all, python is signalling you that an object with name layers is not present within the scope of the script.

But the actual error is that the code was copied out of the TensorFlow's Keras documentation , but in the documentation the second part of the code serves only to explain what is being instantiated within the model.add(...) call.

So just drop all the code that begins with layers , as it is just an explanation.

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'))

Further readings

You should consider learning about Keras on the Keras Documentation .

对我来说,使用from tensorflow.keras import layers完成了这项工作。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM