init = tf.global_variables_initializer()要写到函数调用的后面
import tensorflow.contrib.slim as slim
import tensorflow as tf
def Mobilenet(input_shape,classes,is_training=True,width_multiplier=1,use_bias=True):
inputs = tf.random_normal(shape=input_shape)
with tf.variable_scope('Mobilenet'):
net = slim.conv2d(inputs,num_outputs=32,kernel_size=[3,3],stride=2,padding='SAME',scope='conv_1/conv2d')
return net
if __name__ == "__main__":
inputs_shape = [4, 224, 224, 3]
classes = 1000
writer = tf.summary.FileWriter("./logs1",graph=tf.get_default_graph())
predictions = Mobilenet(inputs_shape,classes)
init = tf.global_variables_initializer()
# print(predictions.shape)
with tf.Session() as sess:
sess.run(init)
# predictions = Mobilenet(inputs_shape, classes)
pred = sess.run(predictions)
print(pred.shape)
输出(4, 112, 112, 32)
以下为错误实例:
import tensorflow.contrib.slim as slim
import tensorflow as tf
def Mobilenet(input_shape,classes,is_training=True,width_multiplier=1,use_bias=True):
inputs = tf.random_normal(shape=input_shape)
with tf.variable_scope('Mobilenet'):
net = slim.conv2d(inputs,num_outputs=32,kernel_size=[3,3],stride=2,padding='SAME',scope='conv_1/conv2d')
return net
if __name__ == "__main__":
inputs_shape = [4, 224, 224, 3]
classes = 1000
writer = tf.summary.FileWriter("./logs1",graph=tf.get_default_graph())
init = tf.global_variables_initializer()
predictions = Mobilenet(inputs_shape,classes)
# print(predictions.shape)
with tf.Session() as sess:
sess.run(init)
# predictions = Mobilenet(inputs_shape, classes)
pred = sess.run(predictions)
print(pred.shape)
报错
tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Mobilenet/conv_1/conv2d/biases
[[node Mobilenet/conv_1/conv2d/biases/read (defined at /Users/xiangshang/Desktop/usable/my/classification/model_tf/mobilenet_1.py:9) ]]
import tensorflow.contrib.slim as slim
import tensorflow as tf
def Mobilenet(input_shape,classes,is_training=True,width_multiplier=1,use_bias=True):
inputs = tf.random_normal(shape=input_shape)
with tf.variable_scope('Mobilenet'):
net = slim.conv2d(inputs,num_outputs=32,kernel_size=[3,3],stride=2,padding='SAME',scope='conv_1/conv2d')
return net
if __name__ == "__main__":
inputs_shape = [4, 224, 224, 3]
classes = 1000
writer = tf.summary.FileWriter("./logs1",graph=tf.get_default_graph())
#init = tf.global_variables_initializer()
predictions = Mobilenet(inputs_shape,classes)
print(predictions.shape)
输出(4, 112, 112, 32)