2017-09-25 114 views
1

我正嘗試使用Dataset API來提供在最新的Tensorflow official models release中找到的資源。使用DataSet API時,「無」尺寸會導致錯誤Tensorflow

基本代碼如下:

with tf.Session() as sess: 
    print("initialized") 

    features_placeholder = tf.placeholder(prepared_x.dtype, prepared_x.shape) 
    labels_placeholder = tf.placeholder(dtype=tf.float32, shape=prepared_t.shape) 

    dataset = tf.contrib.data.Dataset.from_tensor_slices((features_placeholder, labels_placeholder)) 
    dataset = dataset.shuffle(buffer_size=10000) 
    dataset = dataset.batch(batch_size) 
    dataset = dataset.repeat(num_epoch) 

    iterator = dataset.make_initializable_iterator() 

    (next_x_test, next_t_test) = iterator.get_next() 
    next_x_test = tf.to_float(next_x_test, name='ToFloat') 


    sess.run(iterator.initializer, feed_dict={features_placeholder: prepared_x, 
               labels_placeholder: prepared_t}) 


    print(next_x_test) 
    print(next_t_test) 

    model = resnet_v2(resnet_size=50, num_classes=num_bins) 

    output = model(next_x_test,is_training=True) 

該最後行編譯

ValueError: The last dimension of the inputs to Dense should be defined. Found None .

這使得參考回resent_v2定義,其中最後的層是緻密層時引發錯誤。

我該如何斷言我的特徵張量的形狀?

回答

0

使用tensor.set_shape設置張量的形狀,如果它恰好是未定義的。