如何在tf2.0中设置Keras卷积层的核值?

2024-04-19 10:13:12 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在tf2.0中为Conv1D层设置内核值?你知道吗

model = tf.keras.Sequential()
model.add(tf.keras.layers.Conv1D(1, 3, activation='relu', input_shape=(6, 1)))
inp = tf.reshape(tf.constant([1,3,3,0,1,2.]), (1, 6, 1))
print(f'{model(inp)}')
# [[[3.6809962 ]
#   [5.356483  ]
#   [2.4707034 ]
#   [0.94388485]]]

我希望得到与mxnet相同的结果:

conv = mx.gluon.nn.Conv1D(channels=1, kernel_size=3)

input_data = mx.nd.array((1,3,3,0,1,2))
kernel = mx.nd.array((2,0,1))

output_data = apply_conv(input_data, kernel, conv)
print(output_data)
# [[[5. 6. 7. 2.]]]

Tags: inputoutputdatamodeltfarraykernel内核
1条回答
网友
1楼 · 发布于 2024-04-19 10:13:12

数据

import numpy as np

input_data = np.array([1,3,3,0,1,2]).reshape((1,-1,1)) #(1 sample, length, 1 channel)
kernel = np.array([2,0,1]).reshape((3,1,1)) #(size, input_channels, output_channels)   
bias = np.zeros((1,)) # 1 channel

型号

为图层命名以使其更简单。你知道吗

model.add(tf.keras.layers.Conv1D(1, 3, activation='relu', input_shape=(6,1), name='the_layer'))

设置权重

model.get_layer('the_layer').set_weights([kernel, bias])

预测

output_data = model.predict(input_data)

如果这不应该是一个可训练的层,只使用TF函数进行卷积。你知道吗

相关问题 更多 >