padding 是两边,在应用卷积之前,你可以很容易地看到这个与卷积的代码。 (预期结果是中心的内核大小)
import numpy as np
from keras.layers import Input, Conv1D
from keras.models import Model
length = 100
filt = 51
ins = Input((length,1))
outs = Conv1D(1, filt, padding='same', kernel_initializer='ones', use_bias=False)(ins)
model = Model(ins, outs)
preds = model.predict(np.ones((1,length,1)))[0, :, 0]
print('result length = ', len(preds))
print(preds)
输出:
result length = 100
[26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
44. 45. 46. 47. 48. 49. 50. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51.
51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51.
51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51. 51.
51. 51. 51. 50. 49. 48. 47. 46. 45. 44. 43. 42. 41. 40. 39. 38. 37. 36.
35. 34. 33. 32. 31. 30. 29. 28. 27. 26.]
注意它是如何逐渐减小到边界的。随着过滤器的滑动,这些零的数量越来越多。
最后一个问题没有明确的答案。这取决于你需要做什么。
“最佳代表”是什么意思?您可以使用Dense(50),它可以吗?这取决于你想要什么。您可以将 100 重塑为 50x2 并取新轴的平均值......确实有很多解决方案,每个都有自己的属性。