Excuse me, I want to use depthwise_conv2d with nengo:
with nengo.Network() as net:
net.config[nengo.Ensemble].max_rates = nengo.dists.Choice([100])
net.config[nengo.Ensemble].intercepts = nengo.dists.Choice([0])
neuron_type = nengo.LIF(amplitude=0.01)
max_norm_reg=max_norm_regularizer(threshold=1.0,axes=3)
Weight_depthwise=tf.get_variable('Weight_depthwise',[Chans,1,F1,D],
initializer=tf.glorot_uniform_initializer(),regularizer=max_norm_reg)
nengo_dl.configure_settings(trainable=True)
inp = nengo.Node([0] * Chans * Sample*1)
x = nengo_dl.tensor_layer(
inp, tf.layers.conv2d, shape_in=(Chans, Sample,1), filters=4,
kernel_size=(1,kernLength),strides=(1,1),padding='same')
x=nengo_dl.tensor_layer(x,tf.nn.depthwise_conv2d,shape_in=(Chans,1,Sample,4),filter=Weight_depthwise,strides=(1,1,1,1),padding='valid')
x = nengo_dl.tensor_layer(x, neuron_type)
x = nengo_dl.tensor_layer(
x, tf.layers.average_pooling2d, shape_in=(F1*D,1 ,Sample),
pool_size=(1,4), strides=(1,4))
x=nengo_dl.tensor_layer(x,tf.layers.separable_conv2d,shape_in=(F1*D,1,Sample//4),filters=F2,kernel_size=(1,16),strides=(1,1),padding='same')
x = nengo_dl.tensor_layer(x, neuron_type)
x = nengo_dl.tensor_layer(x, tf.layers.average_pooling2d, shape_in=(F2,1 ,Sample//32),pool_size=(1,8), strides=(1,8))
x = nengo_dl.tensor_layer(x, tf.layers.dense, units=2)
out_p = nengo.Probe(x)
out_p_filt = nengo.Probe(x, synapse=0.1)
But it cause error as fellows:
ValidationError: TensorNode.tensor_func: Calling TensorNode function with arguments (<tf.Tensor ‘Const:0’ shape=() dtype=float32>, <tf.Tensor ‘zeros:0’ shape=(1, 65536) dtype=float32>) produced an error: Tensor(“Weight_depthwise:0”, shape=(64, 1, 4, 2), dtype=float32_ref) must be from the same graph as Tensor(“Reshape:0”, shape=(1, 64, 1, 256, 4), dtype=float32).