我最近在线课程使用TensorFlow完成了CNN实现,我不想提及,以避免违反平台规则.我遇到了令人惊讶的结果,我的本地实现与平台服务器上的实现差异很大.经过进一步调查后,我将问题确定tf.contrib.layers.fully_connected()
为TensorFlow版本1.3和1.4之间的行为变化.
我准备了一小部分源代码来重现问题:
import numpy as np
import tensorflow as tf
np.random.seed(1)
def create_placeholders(n_H0, n_W0, n_C0, n_y):
X = tf.placeholder(tf.float32, [None, n_H0, n_W0, n_C0])
Y = tf.placeholder(tf.float32, [None, n_y])
return X, Y
def initialize_parameters():
tf.set_random_seed(1)
W1 = tf.get_variable("W1", [4, 4, 3, 8], initializer=tf.contrib.layers.xavier_initializer(seed=0))
W2 = tf.get_variable("W2", [2, 2, 8, 16], initializer=tf.contrib.layers.xavier_initializer(seed=0))
parameters = {"W1": W1, "W2": W2}
return parameters
def forward_propagation(X, parameters):
W1 = parameters['W1']
W2 = parameters['W2']
Z1 = tf.nn.conv2d(X, W1, strides=[1, 1, 1, 1], padding='SAME')
A1 = …
Run Code Online (Sandbox Code Playgroud)