Как выбрать форму тензора для 1-D сигнала (сигнал акселерометра)?Я продолжаю получать VlaueError из-за тензорной формы - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь смоделировать CNN для 1-D сигнала, но не могу понять ошибки ранга.

Моя программа выглядит так:

#Weights
def init_weights(shape):
    init_random_dist = tf.truncated_normal(shape, stddev=0.1)
    return tf.Variable(init_random_dist)


#Bias
def init_bias(shape):
    init_bias = tf.constant(0.1,shape=shape)
    return tf.Variable(init_bias)

def conv1d(x,W):
    #x is input accelration data and W is corresponding weight
    x = tf.cast(x, tf.float32)
    tf.nn.conv1d(x,W,stride=1,padding='VALID')

def convolution_layer(input_x,shape):
    w = init_weights(shape)
    b = init_bias([shape[3]])
    return tf.nn.relu(conv1d(input_x,w)+b)
  • Теперь заполнители

    x = tf.placeholder(tf.float32,shape=[1,1,200,1])

    y_true = tf.placeholder(tf.float32,shape=[None,6])

при создании 1-го слоя с использованием con_layer_1 = convolution_layer(x,shape=[1,20,1,32]) я получаю ранг ValueError, который яне в состоянии размазыватьСообщение об ошибке:

ValueError: Shape must be rank 4 but is rank 5 for 'conv1d_20/Conv2D' (op: 'Conv2D') with input shapes: [1,1,1,200,1], [1,1,20,1,32].

1 Ответ

0 голосов
/ 11 мая 2018

Форма ввода и веса для nn.conv1d неверна.Форма ввода для nn.conv1d должна иметь размер: [ batch_size, input_length, input_channels], а матрица весов должна иметь размер [filter_size, inputs_channels, output_channels].Поэтому вам нужно изменить код на:

def convolution_layer(input_x,shape):
   w = init_weights(shape)
   b = init_bias([shape[2]])
   return tf.nn.relu(conv1d(input_x,w)+b)

x = tf.placeholder(tf.float32,shape=[1,200,1])

y_true = tf.placeholder(tf.float32,shape=[None,6])

con_layer_1 = convolution_layer(x,shape=[20,1,32]) 

Примечание: вы должны попробовать использовать tf.layers API, который заботится о назначении весов, и все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...