图像分析的高斯过程

gpim的Python项目详细描述


DownloadsPyPI versionBuild StatusDocumentation StatusCodacy Badge

ColabGitpod ready-to-code

什么是GPim

GPim是一个python包,它提供了一种简单的方法来将PyroGpytorch中的高斯过程(GP)应用于图像和高光谱数据,并对网格数据执行基于GP的贝叶斯优化。目标读者是领域科学家(例如,显微镜学家),他们对如何使用Python中的numpy数组有基本的了解。

使用GPim的科学论文:

安装

首先安装PyTorch。然后使用安装GPim

pip install gpim

如何使用

GP重建

下面是一个应用GPim重建稀疏2D图像的简单示例。它同样适用于三维和四维高光谱数据。稀疏数据中缺少的数据点必须表示为NaNs。在没有观测缺失的情况下,GPim可以同时用于图像和光谱数据的各个维度的清洗/平滑,以及提高分辨率。

^{pr2}$

基于GP的贝叶斯优化

在进行测量(真实或模拟)时,可以利用GP重建中的期望函数值和不确定度信息来选择下一个测量点。这通常被称为贝叶斯优化环境下的探索开发方法。下面是一个带有“dummy”函数的简单示例。

importgpimimportnumpyasnpnp.random.seed(42)# Create a dummy 2D functiondeftrial_func(idx):"""    Takes a list of indices as input and returns function value at these indices    """deffunc(x0,y0,a,b,fwhm):returnnp.exp(-4*np.log(2)*(a*(idx[0]-x0)**2+b*(idx[1]-y0)**2)/fwhm**2)Z1=func(5,10,1,1,4.5)Z2=func(10,8,0.75,1.5,7)Z3=func(18,18,1,1.5,10)returnZ1+Z2+Z3# Create an empty observation matrixgrid_size=25Z_sparse=np.ones((grid_size,grid_size))*np.nan# Seed it with several random observationsidx=np.random.randint(0,grid_size,size=(4,2))foriinidx:Z_sparse[tuple(i)]=trial_func(i)# Get full and sparse grid indices for GPX_full=gpim.utils.get_full_grid(Z_sparse)X_sparse=gpim.utils.get_sparse_grid(Z_sparse)# Initialize Bayesian optimizer with an 'expected improvement' acquisition functionboptim=gpim.boptimizer(X_sparse,Z_sparse,X_full,trial_func,acquisition_function='ei',exploration_steps=30,use_gpu=False,verbose=1)# Run Bayesian optimizationboptim.run()# Plot exploration historygpim.utils.plot_query_points(boptim.indices_all,plot_lines=True)

在云端运行GPim笔记本

  1. 可执行Google Colabnotebook,举例说明将GP应用于压电响应力显微镜(PFM)中的稀疏螺旋二维扫描、电子显微镜中的模拟二维原子图像和带内激励PFM中的高光谱三维数据。在
  2. 可执行googlecolabnotebook,以应用并行GP方法分析鳗鱼数据为例。在
  3. 可执行googlecolabnotebook,并以接触式Kelvin探针力显微镜(cKPFM)中4D光谱数据集的GP应用为例。在
  4. 可执行googlecolabnotebook,其中有一个在玩具数据集上执行基于GP的探索开发的简单示例。在

要求

强烈建议使用GPU硬件加速器(如NVIDIA的P100或V100 GPU)运行代码。如果本地计算机上没有GPU,可以从Google Cloud AI Platform租用云GPU。使用一个标准的深度学习虚拟机实例(一个p100gpu和15gb的RAM),从上到下运行一次example notebooks将花费大约1美元。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Rest DSL路由无法启动路由,因为同一端点不允许有多个使用者   jvm有没有像JConsole或VisualVM这样的工具可以告诉我“类、对象、引用变量在java中存储在哪里?”   java为什么我的列表中的所有元素看起来都一样?   java运行时。运行shell脚本的exec无法打开文件   JPopupMenu的JMenuItem的java热键   会话在Java中被覆盖   如何在java中去除字符串中的尖锐重音?   java Mockito监视一个接口,模拟它的默认方法,获取NullPointerException   javascript如何在jquery中禁用同一时间选择   将数组列表附加到现有CSV文件,但它会附加并清除存储在Java文件中的以前的数据   java从我的jar中访问pdf文件   java Sonar issue参数必须为非Null,但标记为可为Null   java Salesforce流式API:在网络故障之后和重新订阅之前获取事件   在Java 1.8.0_65上运行Play2.0应用程序时出现playframework错误   java为什么字母的ASCII由方法自动转换。toCharArray()?   java如何知道JDialog是否关闭?   java向服务器发送POST请求,服务器的响应为null,启动   java如何设置JTable中特定单元格的值?   ImagePlus中的java保存问题