Обычно при использовании API высокого уровня, такого как keras, мы не определяем исключительно параметры слоев. Но при использовании тензорного ядра все параметры и веса моделей определяются исключительно.
W1 = tf.Variable(tf.random_normal([filt1_features,
filt1_features, no_channels, conv1_features]))
b1 = tf.Variable(tf.ones([conv1_features]))
W2 = tf.Variable(tf.random_normal([filt2_features,
filt2_features, conv1_features, conv2_features]))
b2 = tf.Variable(tf.ones([conv2_features]))
Также создаются вспомогательные функции:
# Define helper functions for the convolution and maxpool layers:
def conv_layer(x, W, b):
conv = tf.nn.conv2d(x, W, strides=[1, 1, 1, 1],
padding='SAME')
conv_with_b = tf.nn.bias_add(conv, b)
conv_out = tf.nn.relu(conv_with_b)
return conv_out
def maxpool_layer(conv, k=2):
return tf.nn.max_pool(conv, ksize=[1, k, k, 1],
strides=[1, k, k, 1], padding='SAME')
Это стандартный способ работы?