Rst*_*nbl 5 keras tensorflow transfer-learning vgg-net finetunning
我是机器学习的新手。我正在按照本教程对VGG16模型进行微调。
该模型可以使用以下代码很好地加载:
vgg_model = tensorflow.keras.applications.vgg16.VGG16()
Run Code Online (Sandbox Code Playgroud)
但出现此错误:
TypeError: The added layer must be an instance of class Layer. Found: <tensorflow.python.keras.engine.input_layer.InputLayer object at 0x000001FA104CBB70>
Run Code Online (Sandbox Code Playgroud)
运行此代码时:
model = Sequential()
for layer in vgg_model.layers[:-1]:
model.add(layer)
Run Code Online (Sandbox Code Playgroud)
依存关系:
我正在关注此博客,但我想使用VGG16。
任何帮助解决此问题的方法将不胜感激。非常感谢。
添加到@Manoj Mohan 的答案中,您可以添加一个input_layer到您的model使用中input_layer,Keras layers如下所示:
import keras
from keras.models import Sequential
from keras.layers import InputLayer
model = Sequential()
model.add(InputLayer(input_shape=shape, name=name))
....
Run Code Online (Sandbox Code Playgroud)
如果您使用的是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))
....
Run Code Online (Sandbox Code Playgroud)
来到主要部分,如果您想将层导入到您的顺序模型中,您可以使用以下语法。
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)
Run Code Online (Sandbox Code Playgroud)
这将不起作用,因为已将tensorflow.keras层添加到了keras模型中。
vgg_model = tensorflow.keras.applications.vgg16.VGG16()
model = keras.Sequential()
model.add(vgg_model.layers[0])
Run Code Online (Sandbox Code Playgroud)
实例化tensorflow.keras.Sequential()。这将起作用。
model = tensorflow.keras.Sequential()
model.add(vgg_model.layers[0])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7701 次 |
| 最近记录: |