添加的图层必须是 class 图层的实例。找到:<tensorflow.python.keras.engine.input_layer.InputLayer>
The added layer must be an instance of class Layer. Found: <tensorflow.python.keras.engine.input_layer.InputLayer>
我是机器学习的新手。我在微调 VGG16 模型时关注了这个 tutorial。
使用此代码可以很好地加载模型:
vgg_model = tensorflow.keras.applications.vgg16.VGG16()
但出现此错误:
TypeError: The added layer must be an instance of class Layer. Found: <tensorflow.python.keras.engine.input_layer.InputLayer object at 0x000001FA104CBB70>
当运行这段代码时:
model = Sequential()
for layer in vgg_model.layers[:-1]:
model.add(layer)
依赖关系:
- 凯拉斯 2.2.3
- 张量流 1.12.0
- tensorflow-gpu1.12.0
- Python 3.6.0
我正在关注这个 blog 但我想使用 VGG16。
如能帮助解决此问题,我们将不胜感激。非常感谢。
这将不起作用,因为 tensorflow.keras 层正在添加到 keras 模型中。
vgg_model = tensorflow.keras.applications.vgg16.VGG16()
model = keras.Sequential()
model.add(vgg_model.layers[0])
实例化tensorflow.keras.Sequential()。这会起作用。
model = tensorflow.keras.Sequential()
model.add(vgg_model.layers[0])
您不需要创建 InputLayer,您只需按照与 Conv2D/other 层相同的方式导入 BatchNormalization 层,例如:
from tensorflow.keras.layers import Conv2D, Flatten, MaxPooling2D, Dropout, BatchNormalization
而不是 将其导入为独立的 Keras 层,即:
from tensorflow.keras.layers import Conv2D, Flatten, MaxPooling2D, Dropout
from keras.layers import BatchNormalization
添加到@Manoj Mohan 的回答中,您可以使用 Keras
layers
中的 input_layer
添加一个 input_layer
到您的 model
,如下所示:
import keras
from keras.models import Sequential
from keras.layers import InputLayer
model = Sequential()
model.add(InputLayer(input_shape=shape, name=name))
....
如果你使用的是 TensorFlow
内置 Keras
那么导入是不同的,其他的东西仍然是一样的
import tensorflow as tf
import tensorflow.keras as keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import InputLayer
model = Sequential()
model.add(InputLayer(input_shape=shape, name=name))
....
来到主要部分,如果要将层导入顺序模型,可以使用以下语法。
import keras
from keras.models import Sequential, load_model
from keras import optimizers
from keras.applications.vgg16 import VGG16
from keras.applications.vgg19 import VGG19
# For VGG16 loading to sequential model
model = Sequential(VGG16().layers)
# For VGG19 loading to sequential model
model = Sequential(VGG19().layers)
以上代码片段适用于 TensorFlow
版本 2.x
。您可以通过使用以下命令升级您的 TensorFlow 来 运行 上述代码段:
pip install --upgrade tensorflow
我是机器学习的新手。我在微调 VGG16 模型时关注了这个 tutorial。
使用此代码可以很好地加载模型:
vgg_model = tensorflow.keras.applications.vgg16.VGG16()
但出现此错误:
TypeError: The added layer must be an instance of class Layer. Found: <tensorflow.python.keras.engine.input_layer.InputLayer object at 0x000001FA104CBB70>
当运行这段代码时:
model = Sequential()
for layer in vgg_model.layers[:-1]:
model.add(layer)
依赖关系:
- 凯拉斯 2.2.3
- 张量流 1.12.0
- tensorflow-gpu1.12.0
- Python 3.6.0
我正在关注这个 blog 但我想使用 VGG16。
如能帮助解决此问题,我们将不胜感激。非常感谢。
这将不起作用,因为 tensorflow.keras 层正在添加到 keras 模型中。
vgg_model = tensorflow.keras.applications.vgg16.VGG16()
model = keras.Sequential()
model.add(vgg_model.layers[0])
实例化tensorflow.keras.Sequential()。这会起作用。
model = tensorflow.keras.Sequential()
model.add(vgg_model.layers[0])
您不需要创建 InputLayer,您只需按照与 Conv2D/other 层相同的方式导入 BatchNormalization 层,例如:
from tensorflow.keras.layers import Conv2D, Flatten, MaxPooling2D, Dropout, BatchNormalization
而不是 将其导入为独立的 Keras 层,即:
from tensorflow.keras.layers import Conv2D, Flatten, MaxPooling2D, Dropout
from keras.layers import BatchNormalization
添加到@Manoj Mohan 的回答中,您可以使用 Keras
layers
中的 input_layer
添加一个 input_layer
到您的 model
,如下所示:
import keras
from keras.models import Sequential
from keras.layers import InputLayer
model = Sequential()
model.add(InputLayer(input_shape=shape, name=name))
....
如果你使用的是 TensorFlow
内置 Keras
那么导入是不同的,其他的东西仍然是一样的
import tensorflow as tf
import tensorflow.keras as keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import InputLayer
model = Sequential()
model.add(InputLayer(input_shape=shape, name=name))
....
来到主要部分,如果要将层导入顺序模型,可以使用以下语法。
import keras
from keras.models import Sequential, load_model
from keras import optimizers
from keras.applications.vgg16 import VGG16
from keras.applications.vgg19 import VGG19
# For VGG16 loading to sequential model
model = Sequential(VGG16().layers)
# For VGG19 loading to sequential model
model = Sequential(VGG19().layers)
以上代码片段适用于 TensorFlow
版本 2.x
。您可以通过使用以下命令升级您的 TensorFlow 来 运行 上述代码段:
pip install --upgrade tensorflow