首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow滑动窗口变换

Tensorflow滑动窗口变换
EN

Stack Overflow用户
提问于 2017-03-10 20:39:14
回答 2查看 2.9K关注 0票数 2

我想使用Tensorflow为RNN应用程序做滑动窗口转换。

对于窗口大小为4的情况,使用Tensorflow简单的整形,我们可以转换以下张量:

代码语言:javascript
复制
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

至:

代码语言:javascript
复制
[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18,19,20]]

但我希望它的步长是1,就像下面的张量:

代码语言:javascript
复制
[[1,2,3,4],[2,3,4,5],[3,4,5,6],[7,8,9,10],...,[17,18,19,20]]

使用Tensorflow平铺,我可以获得:

代码语言:javascript
复制
[[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],
 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]]

我认为通过一些转变,我可以得到我想要的东西。你有什么想法吗?

我生成上面的平铺结果的代码很简单,如下所示。但每个元素都将是代表瓶颈的一维张量(来自CNN的特征向量),而不是上面示例中的数字。

代码语言:javascript
复制
model.logits, model.end_points = inception_v3.inception_v3(model.X_Norm, num_classes=nbrOfOutputNeurons, is_training=is_training)
model.bottleneck = slim.flatten(model.end_points['PreLogits']) # The ouput before FC

x = tf.reshape(model.bottleneck, [1, -1, bottleneck_tensor_size])
x = tf.tile(x, [rnn_time_steps, 1, 1])
EN

回答 2

Stack Overflow用户

发布于 2017-04-25 21:52:55

tf.map_fnmap的tensorflow版本

代码语言:javascript
复制
x = tf.range(1, 21, dtype=tf.int32)
xm = tf.map_fn(lambda i: x[i:i+4], tf.range(20-4+1), dtype=tf.int32)

with tf.Session() as session:
  session.run(tf.global_variables_initializer())

  x, xm = session.run([x, xm])
  print(x)
  print(xm)
票数 8
EN

Stack Overflow用户

发布于 2021-05-26 23:37:38

尝试使用:

代码语言:javascript
复制
    from tensorflow.python.ops.signal import shape_ops
    framed_signals = shape_ops.frame(signal, win_len, win_step)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42718649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档