作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
model = Sequential()
model.add(layers.Embedding(input_dim=14000, output_dim=100, input_length=100))
model.add(layers.Conv1D(filters=32, kernel_size=8, activation='relu'))
model.add(layers.GlobalMaxPooling1D())
model.add(layers.Flatten())
model.add(layers.Dense(10, activation='relu'))
model.add(layers.Dense(5, activation='softmax'))
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
embedding (Embedding) (None, 100, 100) 1470700
_________________________________________________________________
conv1d (Conv1D) (None, 93, 32) 25632
_________________________________________________________________
global_max_pooling1d (Global (None, 32) 0
_________________________________________________________________
flatten (Flatten) (None, 32) 0
_________________________________________________________________
dense (Dense) (None, 10) 330
_________________________________________________________________
dense_1 (Dense) (None, 5) 55
=================================================================
Total params: 1,496,717
Trainable params: 1,496,717
Non-trainable params: 0
_________________________________________________________________
for i, val in enumerate(X_test_text):
y_predict = model.predict(X_test_text[i:i+1])
embedding = XXX_get_wights_XXX(i: ??
model.get_layer("flatten").get_weights()
给我一个长度为 0 的列表? (我确信该层将用作嵌入层,并且会给我一个包含 32 个值的向量)model.get_layer("dense").get_weights()[0].shape
给出元组 (32, 10) ?为什么元组包含两个值而不是一个? (只有 32 岁?)最佳答案
您正在寻找模型输出而不是模型权重。从您的 Flatten
获取模型输出层,你只需要初始化一个新模型来提取和产生你想要的输出......
model = Sequential()
model.add(layers.Embedding(input_dim=14000, output_dim=100, input_length=100))
model.add(layers.Conv1D(filters=32, kernel_size=8, activation='relu'))
model.add(layers.GlobalMaxPooling1D())
model.add(layers.Flatten())
model.add(layers.Dense(10, activation='relu'))
model.add(layers.Dense(5, activation='softmax'))
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
# model.fit(X_train,y_train, ...)
从
Flatten
获取模型输出层:
n_sample = 20
X_test = np.random.randint(0,14000, (n_sample, 100))
from tensorflow.keras.models import Model
intermediate_model = Model(model.inputs, model.get_layer("flatten").output)
intermediate_model.predict(X_test).shape # (n_sample, 32)
PS:使用
Flatten
之后
GlobalMaxPooling
没用,因为
GlobalMaxPooling
输出是二维的
关于tensorflow - 如何获得正确的尸鬼?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67868206/
我是一名优秀的程序员,十分优秀!