由于尺寸问题,试图实施纸张并碰到一些砖墙。我的输入是单声道音频数据,其中128帧50ms的16kHz采样音频被馈送到网络中。所以我的输入形状是: [128,0.005 * 16000,1] 这是图层的详细信息-
1。)conv-bank块:Conv1d-bank-8,LeReLU,IN(实例归一化) 我使用:
class RegisterPage extends React.Component {
constructor(props) {
super(props);
}
// (...)
handleCheckBox: (e) => {
// do whatever you want to the value
}
render () {
<Form>
<Field name="email" type="email" />
<Field name="password" type="password" />
<Field
name="myCheckbox"
type="checkbox"
checked={this.props.values.myCheckbox}
onChange={(e) => {this.handleChange(e); this.handleCheckBox(e)}} />
</Form>
}
}
2。)conv-block:C-512-5,LReLu-> C-512-5,stride = 2,LReLu,IN,RES(剩余)
这是我被卡住的地方,第二次卷积的输出和(2)层的输入的形状不匹配。我无法解决这个问题。
我使用以下方法实现此目标:
bank_width = 8
conv_bank_outputs = tf.concat([ tf.layers.conv1d(input,1,k,activation=tf.nn.leaky_relu,padding="same") for k in range(1, bank_width + 1)], axes = -1)
错误:block_1 = tf.layers.conv1d(input,filters=512,kernel_size=5,activation=tf.nn.leaky_relu,padding="same")
block_2 = tf.layers.conv1d(block_1,filters=512,kernel_size=5,strides=2,activation=tf.nn.leaky_relu,padding="same")
IN = tf.contrib.layers.instance_norm(block_2)
RES = IN + input
答案 0 :(得分:0)
当在块1上以stride = 2运行conv1d时,输入数据将减半,因为conv1d仅有效地采样备用编号,并且您更改了通道数。通常,这可以通过使用跨步2和过滤器512通过1x1 conv对输入进行下采样来解决,尽管我可以更具体地分享纸张。