Dav*_*ord 3 machine-learning keras tensorflow tf.keras tensorflow2.0
我正在尝试将一些代码从tensorflow 1.x 转换为tensorflow 2.x。到目前为止进展顺利,但我陷入了空洞卷积。与其他层不同,似乎没有一对一的转换。
到目前为止,我已经将所有内容统一到 tf.keras。这里有一个纯 keras 实现和一个 tf.nn.atrous_conv2d 实现,但我也不确定是否可以在 tf.keras.Model 功能 api 中使用它们。
这是代码:
with tf.variable_scope('aconv1d_' + name):
shape = [None, 30, 128]
kernel = tf.get_variable('kernel', (1, size, shape[-1], n_filters), dtype=tf.float32,
initializer=tf.contrib.layers.xavier_initializer())
if bias:
b = tf.get_variable('b', [shape[-1]], dtype=tf.float32, initializer=tf.constant_initializer(0))
out = tf.nn.atrous_conv2d(tf.expand_dims(input_tensor, dim=1), kernel, rate=rate, padding='SAME') + (
b if bias else 0)
out = tf.squeeze(out, [1])
return out
Run Code Online (Sandbox Code Playgroud)
我只想转换它,将其粘贴到 keras 功能 api 中,执行 model.fit,然后运行。
谢谢你帮助我这样的菜鸟。
Atrous Convolution 或 Dilated Convolution 已在tensorflow2.x版本中通过参数“ dilation_rate”提供。默认情况下,它设置为(1,1),如果您查看https://www.tensorflow.org/api_docs/python/tf/keras/layers/Conv2D。将其修改为其他值,例如(2,2),您将得到扩张/空洞卷积。
| 归档时间: |
|
| 查看次数: |
2387 次 |
| 最近记录: |