У меня есть нейронная сеть прямой связи в соответствии с этой публикацией
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
Нейроны
n_neurons_1 = 256
n_neurons_2 = 128
n_neurons_3 = 64
n_neurons_4 = 32
n_neurons_5 = 16
n_neurons_6 = 8
net = tf.InteractiveSession()
Заполнитель
X = tf.placeholder(dtype=tf.float32, shape=[None, n_stocks])
Y = tf.placeholder(dtype=tf.float32, shape=[None])
Инициализаторы
sigma = 1
weight_initializer = tf.variance_scaling_initializer(mode="fan_avg",
distribution="uniform",
scale=sigma)
bias_initializer = tf.zeros_initializer()
Скрытые веса
W_hidden_1 = tf.Variable(weight_initializer([n_stocks, n_neurons_1]))
bias_hidden_1 = tf.Variable(bias_initializer([n_neurons_1]))
W_hidden_2 = tf.Variable(weight_initializer([n_neurons_1, n_neurons_2]))
bias_hidden_2 = tf.Variable(bias_initializer([n_neurons_2]))
W_hidden_3 = tf.Variable(weight_initializer([n_neurons_2, n_neurons_3]))
bias_hidden_3 = tf.Variable(bias_initializer([n_neurons_3]))
W_hidden_4 = tf.Variable(weight_initializer([n_neurons_3, n_neurons_4]))
bias_hidden_4 = tf.Variable(bias_initializer([n_neurons_4]))
W_hidden_5 = tf.Variable(weight_initializer([n_neurons_4, n_neurons_5]))
bias_hidden_5 = tf.Variable(bias_initializer([n_neurons_5]))
W_hidden_6 = tf.Variable(weight_initializer([n_neurons_5, n_neurons_6]))
bias_hidden_6 = tf.Variable(bias_initializer([n_neurons_6]))
Я пытаюсь добавить сверточный слой
W_conv1 = tf.Variable(weight_initializer([None, n_stocks]))
conv1 = tf.nn.conv2d(X, W_conv1, strides=[-1, 1, 1, 1], padding='SAME')
hidden_1 = tf.nn.relu(tf.add(tf.matmul(conv1, W_hidden_1), bias_hidden_1))
hidden_2 = tf.nn.relu(tf.add(tf.matmul(hidden_1, W_hidden_2), bias_hidden_2))
hidden_3 = tf.nn.relu(tf.add(tf.matmul(hidden_2, W_hidden_3), bias_hidden_3))
hidden_4 = tf.nn.relu(tf.add(tf.matmul(hidden_3, W_hidden_4), bias_hidden_4))
hidden_5 = tf.nn.relu(tf.add(tf.matmul(hidden_4, W_hidden_5), bias_hidden_5))
hidden_6 = tf.nn.relu(tf.add(tf.matmul(hidden_5, W_hidden_6), bias_hidden_6))
Выдает такую ошибку:
TypeError: аргумент int () должен быть строкой, байтовоподобным объектом или числом, а не NoneType
Полагаю, это из-за None
W_conv1 = tf.Variable(weight_initializer([None, n_stocks]))
Как решить эту проблему? Правильно ли добавить таким образом сверточный слой? Если это неправильно, как это должно быть добавлено?