未知形状Tensorflow对象检测

时间:2019-12-29 05:54:22

标签: python tensorflow

我有tensorflow对象(self.rec_fmap_clone),它在图形加载期间具有未知的形状,在运行期间具有一定的形状和值。

def __init__(self,fatness,image_shape, vocab, r_vocab, num_classes,rnn_cells_num):
           ......
           ......          
           self.rec_fmap_clone = roi_pooling(net, self.in_boxes, pool_height=self.poolheight, pool_width=self.poolwidth) #shape is (1, 20, 256, 1, 32)

           if not(self.rec_fmap_clone.get_shape()==None):
              self.rec_fmap = tf.identity(self.rec_fmap_clone)
              shape=np.shape(self.rec_fmap)
              self.rec_fmap=np.reshape(self.rec_fmap, (shape[1],shape[2],shape[3],shape[4]))
              self.rec_fmap=tf.transpose(self.rec_fmap, perm=[0, 2, 3, 1])
           else:
              self.rec_fmap=tf.ones([config.train.input_labels_size, 1, 32, 256], tf.float32)
           with slim.arg_scope([slim.conv2d],normalizer_fn=slim.batch_norm,weights_initializer=tf.truncated_normal_initializer(stddev=0.01),weights_regularizer=slim.l2_regularizer(0.0005)):
           classes = slim.conv2d(self.rec_fmap, self.num_classes, [1, 13])
           pattern = slim.fully_connected(slim.flatten(classes), self.rnn_cells_num)  # patterns number

       ........
       .......
def run(self, input_dat, in_boxes, labels):
        return self.sess.run([self.rec_fmap_clone, self.rec_fmap,self.global_step,self.learning_rate,self.loss,self.opt_loss],feed_dict={self.input_dat: input_dat, self.in_boxes: in_boxes, self.input_labels:labels}) 

在图形加载期间,self.rec_fmap_clone.get_shape() gave TensorShape(None). So the process went into else loop.

但是在运行期间,self.rec_fmap_clone具有一定的形状。因为我检查了self.sess.run的返回值和观察值。

return self.sess.run([self.rec_fmap_clone, self.rec_fmap,self.global_step,self.learning_rate,self.loss,self.opt_loss],feed_dict={self.input_dat: input_dat, self.in_boxes: in_boxes, self.input_labels:labels}) 

但是问题出在运行期间,该过程从未进入if not loop and always goes into else loop. Bucause sess.run输出显示self.rec_fmap始终为1。

在运行期间,为什么该流程没有进入if not loop

0 个答案:

没有答案