- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
举例来说,我有一个输入,其中包含2张图像,总形状为(2,299,299,3)。我正在尝试在每个图像上应用inceptionv3,然后随后使用LSTM处理输出。我正在使用 mask 层将空白图像排除在处理范围之外(在下面指定)。
代码是:
import numpy as np
from keras import backend as K
from keras.models import Sequential,Model
from keras.layers import Convolution2D, MaxPooling2D, ZeroPadding2D, BatchNormalization, \
Input, GlobalAveragePooling2D, Masking,TimeDistributed, LSTM,Dense,Flatten,Reshape,Lambda, Concatenate
from keras.layers import Activation, Dropout, Flatten, Dense
from keras.applications import inception_v3
IMG_SIZE=(299,299,3)
def create_base():
base_model = inception_v3.InceptionV3(weights='imagenet', include_top=False)
x = GlobalAveragePooling2D()(base_model.output)
base_model=Model(base_model.input,x)
return base_model
base_model=create_base()
#Image mask to ignore images with pixel values of -1
IMAGE_MASK = -2*np.expand_dims(np.ones(IMG_SIZE),0)
final_input=Input((2,IMG_SIZE[0],IMG_SIZE[1],IMG_SIZE[2]))
final_model = Masking(mask_value = -2.)(final_input)
final_model = TimeDistributed(base_model)(final_model)
final_model = Lambda(lambda x: x, output_shape=lambda s:s)(final_model)
#final_model = Reshape(target_shape=(2, 2048))(final_model)
#final_model = Masking(mask_value = 0.)(final_model)
final_model = LSTM(5,return_sequences=False)(final_model)
final_model = Model(final_input,final_model)
#Create a sample test image
TEST_IMAGE = np.ones(IMG_SIZE)
#Create a test sample input, consisting of a normal image and a masked image
TEST_SAMPLE = np.concatenate((np.expand_dims(TEST_IMAGE,axis=0),IMAGE_MASK))
inp = final_model.input # input placeholder
outputs = [layer.output for layer in final_model.layers] # all layer outputs
functors = [K.function([inp]+ [K.learning_phase()], [out]) for out in outputs]
layer_outs = [func([np.expand_dims(TEST_SAMPLE,0), 1.]) for func in functors]
[array([[-0.15324114, -0.09620268, -0.01668587, 0.07938149, -0.00757846]], dtype=float32)]
[array([[[ 0.37713543, 0.36381325, 0.36197218, ..., 0.23298527,
0.43247852, 0.34844452],
[ 0.24972123, 0.2378867 , 0.11810347, ..., 0.51930511,
0.33289322, 0.33403745]]], dtype=float32)]
[[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.],
...,
[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]]],
[[[-0., -0., -0.],
[-0., -0., -0.],
[-0., -0., -0.],
...,
[-0., -0., -0.],
[-0., -0., -0.],
[-0., -0., -0.]],
def create_base():
input_layer=Input(IMG_SIZE)
base_model=Flatten()(input_layer)
base_model=Dense(2048)(base_model)
base_model=Model(input_layer,base_model)
return base_model
base_model.__setattr__('supports_masking',True)
TimeDistributed(Lambda(lambda x: base_model(x), output_shape=lambda s:s))(final_model)
最佳答案
不能完全确定这是否可行,但是基于comment made here,它应该可以使用较新版本的tensorflow + keras进行工作:
final_model = TimeDistributed(Flatten())(final_input)
final_model = Masking(mask_value = -2.)(final_model)
final_model = TimeDistributed(Reshape(IMG_SIZE))(final_model)
final_model = TimeDistributed(base_model)(final_model)
final_model = Model(final_input,final_model)
我看了一下 mask 的源代码,发现Keras创建了只减少最后一个轴的 mask 张量。只要使用5D张量,它就不会造成任何问题,但是当您减小LSTM的尺寸时,此掩盖张量变得不兼容。
inp = final_model.input # input placeholder
outputs = [layer.output for layer in final_model.layers] # all layer outputs
fullModel = Model(inp,outputs)
layerPredictions = fullModel.predict(np.expand_dims(TEST_SAMPLE,0))
print(layerPredictions[-2])
关于tensorflow - Keras TimeDistributed Not Masking CNN模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50094633/
我编写了以下脚本,用于读取 CNN-RNN-FCN NN 架构的 yaml 规范并构建相应的 Keras 模型: #!/usr/bin/env python3 # -*- coding: utf-8
我有一个预训练模型,其中包含多个具有不同形状的输入。所以我可以在具有匹配形状的新输入上调用模型,如下所示: new_output = model([input_1, input2]) 与 input_
来自 keras docs : 然后,您可以使用 TimeDistributed 将 Dense 层独立应用于 10 个时间步长中的每一个: # as the first layer in a mod
举例来说,我有一个输入,其中包含2张图像,总形状为(2,299,299,3)。我正在尝试在每个图像上应用inceptionv3,然后随后使用LSTM处理输出。我正在使用 mask 层将空白图像排除在处
我有一个简单的序列模型,使用 TimeDistributed(Dense...) 作为 LSTM 层之后的最后一层。我正在以 20 个时间步长的顺序训练时间序列数据。损失函数是Mean Absolut
BatchNormalization 和 TimeDistributed(BatchNormalization) 是否对顺序数据(例如视频)有相同的影响?如果不是有什么区别? 最佳答案 在 tf.ke
我正在尝试使以下代码行正常工作: low_encoder_out = TimeDistributed( AutoregressiveDecoder(...) )([X_tf, embeddings])
我目前正在使用 Keras 开发 LSTM,并且对 TimeDistributed 层有疑问。 假设我有一个 TimeDistributed 层,它接受诸如 (batch_size,timesteps
我试图了解 TimeDistributed 层在 keras/tensorflow 中的使用。我已经阅读了一些主题和文章,但仍然没有正确理解。 让我对 TImeDistributed 层的作用有一些了
我已经完成了 official documentation但仍然无法理解 TimeDistributed 作为 Keras 模型中的层实际上做了什么? 我无法理解 TimeDistributed 和
我正在尝试了解 TimeDistributed 包装器在 Keras 中的作用。 我知道 TimeDistributed “将一个层应用于输入的每个时间切片。” 但是我做了一些实验,得到了我无法理解的
我创建了一个 CNN-LSTM 用于网络 session 的生存预测,我的训练数据如下所示: print(x_train.shape) (288, 3, 393) 使用(样本、时间步长、特征)和我的模
我的输入状态形状= (84,84,4) state = Input(shape=(84,84,4), dtype="float") 所以我想将其传递给时间步长大小=1..5(范围为1到5)的某个Tim
这是我的问题,我想在 TimeDistributed 层中使用预训练 CNN 网络之一。但是我在实现它时遇到了一些问题。 这是我的模型: def bnn_model(max_len): # s
我知道这个主题有很多问题,但我不明白为什么在我的情况下这两种选择都是可能的。我在 LSTM 中的输入形状是 (10,24,2),我的 hidden_size 是 8。 model = Sequen
这是我的尝试: inputs = Input(shape=(config.N_FRAMES_IN_SEQUENCE, config.IMAGE_H, config.IMAGE_W, config.N_
我正在尝试更好地理解 Keras 层。我正在研究一个序列到序列模型,我在其中嵌入一个句子并将其传递给返回序列的 LSTM。此后,我想将 Dense 层应用于句子中的每个时间步长(单词),并且 Time
抱歉,我是 RNN 的新手。我读过this post在 TimeDistributed 层上。 我已将数据 reshape 为 Keras 要求的 [samples, time_steps, feat
我一直在尝试对 machinelearningmastery 中显示的 LSTM 模型的输出实现注意力包装器教程: from numpy import array from keras.models
我正在尝试构建一个可以在音频和视频样本上进行训练的模型,但出现此错误 ValueError:请使用“Layer”实例初始化“TimeDistributed”层。您传递了:Tensor("input_1
我是一名优秀的程序员,十分优秀!