TensorFlow:如何通过权重变量批处理批量张量?

时间:2016-04-26 16:35:38

标签: python tensorflow

我有以下批量形状:

<html>
  <head>
    <script src="https://code.jquery.com/jquery-1.12.3.min.js" integrity="sha256-aaODHAgvwQW1bFOGXMeX+pC4PZIPsvn2h1sArYOhgXQ="   crossorigin="anonymous"></script>
  </head>
  <body>
    <div data-js="works"></div>
    test

    <script>
      $('[data-js=works]').append("hello");
    </script>
  </body>
</html>

以下权重变量:

 [?,227,227]

但是当我做 weight_tensor = tf.truncated_normal([227,227],**{'stddev':0.1,'mean':0.0}) weight_var = tf.Variable(weight_tensor) 时:

tf.batch_matmul

我因以下错误而失败:

  

ValueError:形状(?,)和()必须具有相同的等级

所以我的问题变成了:我该怎么做?

如何让2D中的weight_variable与每张图片(227x227)相乘,以便我有一个(227x227)输出?这个操作的扁平版本完全耗尽了资源...加上渐变不会在平面形式中正确地改变重量......

或者:如何沿着批量维度(?,)分割传入的张量,以便我可以使用我的weight_variable在每个分割张量上运行 matrix = tf.batch_matmul(prev_net_2d,weight_var) 函数?

1 个答案:

答案 0 :(得分:4)

您可以沿第一维平铺权重

weight_tensor = tf.truncated_normal([227,227],**{'stddev':0.1,'mean':0.0})
weight_var = tf.Variable(weight_tensor)
weight_var_batch = tf.tile(tf.expand_dims(weight_var, axis=0), [batch_size, 1, 1])
matrix = tf.matmul(prev_net_2d,weight_var_batch)

虽然batch_matmul不再存在