微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

geom_sf:使用 expand=FALSE 重新标记经纬网

如何解决geom_sf:使用 expand=FALSE 重新标记经纬网

我创建了一个 25 x 20 的空间矩形,我只想在绘制时标记四肢 (0,X) 和 (0,Y)。
当 coord_sf(expand=T) 时它工作正常,但如果 expand=F,我会收到一条错误消息。

矩形定义为

Using resnet101 as network backbone For Mask R-CNN model
Applying Default Augmentation on Dataset
Train 48 images
Validate 0 images
Checkpoint Path: /content/mask_rcnn_models
Selecting layers to train
Epoch 1/300
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-6-c2bd46bd70ab> in <module>()
     7 train_maskrcnn.load_pretrained_model("/content/drive/MyDrive/AI ML Trainee/damage Detection/pix/mask_rcnn_coco.h5")
     8 train_maskrcnn.load_dataset("/content/drive/MyDrive/AI ML Trainee/damage Detection/pix/Dataset")
----> 9 train_maskrcnn.train_model(num_epochs = 300,augmentation=True,path_trained_models = "mask_rcnn_models")

8 frames
/usr/local/lib/python3.7/dist-packages/pixellib/custom_train.py in train_model(self,num_epochs,path_trained_models,layers,augmentation)
   122 
   123         self.model.train(self.dataset_train,self.dataset_test,models = path_trained_models,augmentation = augmentation,--> 124         epochs=num_epochs,layers=layers)
   125 
   126 

/usr/local/lib/python3.7/dist-packages/pixellib/mask_rcnn.py in train(self,train_dataset,val_dataset,epochs,models,augmentation,no_augmentation_sources)
  2316             max_queue_size=100,2317             workers=workers,-> 2318             verbose = 1
  2319 
  2320         )

/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training_v1.py in fit(self,x,y,batch_size,verbose,callbacks,validation_split,validation_data,shuffle,class_weight,sample_weight,initial_epoch,steps_per_epoch,validation_steps,validation_freq,max_queue_size,workers,use_multiprocessing,**kwargs)
   806         max_queue_size=max_queue_size,807         workers=workers,--> 808         use_multiprocessing=use_multiprocessing)
   809 
   810   def evaluate(self,/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training_generator_v1.py in fit(self,model,use_multiprocessing)
   591         shuffle=shuffle,592         initial_epoch=initial_epoch,--> 593         steps_name='steps_per_epoch')
   594 
   595   def evaluate(self,/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training_generator_v1.py in model_iteration(model,data,mode,steps_name,**kwargs)
   257 
   258       is_deferred = not model._is_compiled
--> 259       batch_outs = batch_function(*batch_data)
   260       if not isinstance(batch_outs,list):
   261         batch_outs = [batch_outs]

/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training_v1.py in train_on_batch(self,reset_metrics)
  1061     x,sample_weights = self._standardize_user_data(
  1062         x,sample_weight=sample_weight,class_weight=class_weight,-> 1063         extract_tensors_from_dataset=True)
  1064 
  1065     # If `self._distribution_strategy` is True,then we are in a replica context

/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training_v1.py in _standardize_user_data(self,check_steps,steps,extract_tensors_from_dataset)
  2334         is_dataset=is_dataset,2335         class_weight=class_weight,-> 2336         batch_size=batch_size)
  2337 
  2338   def _standardize_tensors(self,run_eagerly,dict_inputs,/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training_v1.py in _standardize_tensors(self,is_dataset,batch_size)
  2361           Feed_input_shapes,2362           check_batch_axis=False,# Don't enforce the batch size.
-> 2363           exception_prefix='input')
  2364 
  2365     # Get typespecs for the input data and sanitize it if necessary.

/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training_utils_v1.py in standardize_input_data(data,names,shapes,check_batch_axis,exception_prefix)
   538                              ': expected ' + names[i] + ' to have shape ' +
   539                              str(shape) + ' but got array with shape ' +
--> 540                              str(data_shape))
   541   return data
   542 

ValueError: Error when checking input: expected input_image_Meta to have shape (15,) but got array with shape (14,)

下图效果很好

library(sf)
x <- c(0,25,0)
y <- c(0,20,0)
poly.sf <- st_sf(geometry = st_sfc(st_polygon(list(matrix(c(x1,y1),ncol=2)))))

但是因为我不想要四肢前后的空间,所以我添加

library(ggplot) 
ggplot() + 
geom_sf(data=poly.sf) +
scale_y_continuous(breaks=c(0,20),labels=c("0","Y")) +
scale_x_continuous(breaks=c(0,25),"X"))

我收到以下错误
错误:沿 x 方向的断点和标签长度不同”
这对我来说毫无意义。

如何获得标有 (0,Y) 轴且前后没有空格的图 四肢?

解决方法

我尝试为标签创建自定义函数,试试这个:


library(sf)
x <- c(0,25,0)
y <- c(0,20,0)
poly.sf <- st_sf(geometry = st_sfc(st_polygon(list(matrix(c(x,y),ncol = 2)))))

library(ggplot2)

# Custom labelling functions
labsy <- function(y) {
  y[y != 0] <- "Y"
  paste0(y,"")
}

labsx <- function(x) {
  x[x != 0] <- "X"
  paste0(x,"")
}

ggplot() +
  geom_sf(data = poly.sf) +
  scale_y_continuous(breaks = c(0,20),labels = labsy) +
  scale_x_continuous(breaks = c(0,25),labels = labsx) +
  coord_sf(expand = FALSE)

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?