Python 正在尝试使用未初始化的值接收v3/Mixed\u 6d/Branch\u 3/Conv2d\u 0b\u 1x
我修改了Inception V3网络(删除了一些层模块),并创建了6个类的训练数据,每个类1个图像。当我执行训练时,我会得到错误 tensorflow.python.framework.errors\u impl.FailedPremissionError: 正在尝试使用未初始化的值 接收v3/Mixed_6d/Branch_3/Conv2d_0b_1x1/weights[[节点: 接收V3/Mixed_6d/分支3/Conv2d_0b_1x1/权重/读取= 标识[T=DT\u浮点,\u类=[“loc:/Branch\u 3/Conv2d\u 0 列车代码:Python 正在尝试使用未初始化的值接收v3/Mixed\u 6d/Branch\u 3/Conv2d\u 0b\u 1x,python,tensorflow,initialization,conv-neural-network,tensorflow-slim,Python,Tensorflow,Initialization,Conv Neural Network,Tensorflow Slim,我修改了Inception V3网络(删除了一些层模块),并创建了6个类的训练数据,每个类1个图像。当我执行训练时,我会得到错误 tensorflow.python.framework.errors\u impl.FailedPremissionError: 正在尝试使用未初始化的值 接收v3/Mixed_6d/Branch_3/Conv2d_0b_1x1/weights[[节点: 接收V3/Mixed_6d/分支3/Conv2d_0b_1x1/权重/读取= 标识[T=DT\u浮点,\u类=[“
将tensorflow导入为tf
导入起始
导入创建记录
将numpy作为np导入
导入实用程序
宽度,高度=299299
班级=6
批量大小=6
学习率=0.01
最大步长=1
image_dir='/home/xzy/test/images/'
路径='/home/xzy/test/train.tfrecords'
logs_dir='/home/xzy/test/logs/'
#%%培训
def序列():
filename\u queue=tf.train.string\u input\u producer([path])
reader=tf.TFRecordReader()
_,序列化的\u示例=reader.read(文件名\u队列)
features=tf.parse_single_示例(序列化的_示例,
特征={
“标签”:tf.FixedLenFeature([],tf.int64),
“img_raw”:tf.FixedLenFeature([],tf.string),
})
image=tf.decode\u raw(特征['img\u raw',tf.uint8)
image=tf.重塑(图像[299299,3])
label=tf.cast(特性['label'],tf.int32)
image\u batch,label\u batch=tf.train.batch([image,label],
批量大小=6,线程数=64,容量=300)
label\u batch=tf.one\u hot(label\u batch,depth=classes)
label\u batch=tf.cast(label\u batch,dtype=tf.int32)
label\u batch=tf.重塑(label\u batch,[批次大小,类别])
x=tf.placeholder(tf.float32,形状=[批次大小、宽度、高度,3])
y=tf.placeholder(tf.int16,shape=[batch\u size,classes])
初始化所有变量()
logits=inception.inference(x,num\u classes=classes)
损失=初始损失(逻辑,y)
my_global_step=tf.Variable(0,name='global_step',trainable=False)
优化器=tf.train.GradientDescentOptimizer(学习率)
训练=优化器。最小化(损失,全局步骤=我的全局步骤)
saver=tf.train.saver(tf.global_variables())
summary\u op=tf.summary.merge\u all()
使用tf.Session()作为sess:
sess.run(初始化操作)
coord=tf.train.Coordinator()
线程=tf.train.start\u queue\u runner(coord=coord)
train\u summary\u writer=tf.summary.FileWriter(logs\u dir,sess.graph)
尝试:
对于np.arange中的步骤(最大步骤):
如果协调,则应停止():
打破
例如,lab=sess.run([image\u batch,label\u batch])
示例=tf.to_float(示例)
_,train_loss=sess.run([train_op,loss],feed_dict={x:example.eval(),y:lab})
如果步骤==0或(步骤+1)==最大步骤:
打印('步骤:%d,丢失:%.4f%'(步骤,序列丢失))
summary\u str=sess.run(summary\u op)
培训总结撰写者。添加总结(总结,步骤)
如果步骤%2000==0或(步骤+1)==max\u步骤:
checkpoint\u path=os.path.join(train\u log\u dir,'model.ckpt')
saver.save(sess、检查点路径、全局步骤=步骤)
除了tf.errors.OutOfRangeError:
打印('完成培训-达到历元极限')
协调请求停止()
坐标连接(线程)
sess.close()
列车()
错误堆栈跟踪:
回溯(最近一次呼叫最后一次):
文件“/home/xzy/PycharmProjects/network/train_inception.py”,第89行,在
列车()
文件“/home/xzy/PycharmProjects/network/train_inception.py”,第71行,in train()_,train_loss=sess.run([train_op,loss],feed_dict={x:example.eval(),y:lab}) 文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/client/session.py”,第889行,正在运行 运行_元数据_ptr) 文件“/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py”,第1120行,正在运行 feed_dict_tensor、options、run_元数据) 文件“/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py”,第1317行,运行 选项,运行(元数据) 文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/client/session.py”,第1336行,在 提升类型(e)(节点定义、操作、消息) tensorflow.python.framework.errors\u impl.failedPremissionError:尝试使用未初始化的值InceptionV3/Mixed\u 6d/Branch\u 3/Conv2d\u 0b\u 1x1/weights [[Node:InceptionV3/Mixed\u 6d/Branch\u 3/Conv2d\u 0b\u 1x1/weights/read=Identity[T=DT\u FLOAT,\u class=[“loc:@InceptionV3/Mixed\u 6d/Branch\u 3/Conv2d\u 0 怎么了?有人能给我一些建议吗,谢谢
Tensorflow版本:1.5.0-dev20171206,python 2.7,Ubuntu 16.04。您的
init_op
定义得太早了:
init_op=tf.initialize_all_variables()
#糟糕!下面的所有操作都无法初始化!
logits=inception.inference(x,num\u classes=classes)
损失=初始损失(逻辑,y)
my_global_step=tf.Variable(0,name='global_step',trainable=False)
优化器=tf.train.GradientDescentOptimizer(学习率)
训练=优化器。最小化(损失,全局步骤=我的全局步骤)
解决方案:
logits=inception.inference(x,num\u classes=classes)
损失=初始损失(逻辑,y)
my_global_step=tf.Variable(0,name='global_step',trainable=False)
优化器=tf.train.GradientDescentOptimizer(学习率)
训练=优化器。最小化(损失,全局步骤=我的全局步骤)
#现在没事了。
init_op=tf.global_variables_initializer()
您忘记了这个-@Maxim。谢谢您的回答。我将代码从init\u op=tf.initialize更改为