

本Notebook的主要目的是对输入输出数据进行可视化从而更好的理解待解决问题。
加载必要的库
加载所有文件
find 3600 field files and 900 speed files in /bohr/helmholtz-o7w7/v3/dataset_train_1 find 3600 field files and 900 speed files in /bohr/helmholtz-o7w7/v3/dataset_train_2 find 3600 field files and 900 speed files in /bohr/helmholtz-o7w7/v3/dataset_train_3 find 3600 field files and 900 speed files in /bohr/helmholtz-o7w7/v3/dataset_train_4 find 3600 field files and 900 speed files in /bohr/helmholtz-o7w7/v3/dataset_train_5 find 3600 field files and 900 speed files in /bohr/helmholtz-o7w7/v3/dataset_train_6 find 3600 field files and 900 speed files in /bohr/helmholtz-o7w7/v3/dataset_train_7 find 3600 field files and 900 speed files in /bohr/helmholtz-o7w7/v3/dataset_train_8 find 7200 samples
本次比赛训练集一共有7200个不同ID的样本。共分为8个子文件夹,每一个存储了900个样本。
每一个子文件夹下有两个子目录:field
和speed
。其中speed
存储的是输入的波速;field
存储的是输出结果。
对于每一个波速样本,使用32个不同位置的波源进行仿真,因此一个speed文件对应多个field文件。具体而言,这32个不同位置波源的仿真数据存储为4个field文件。
可视化
field_path ['/bohr/helmholtz-o7w7/v3/dataset_train_1/field/train_1_1.npy', '/bohr/helmholtz-o7w7/v3/dataset_train_1/field/train_1_2.npy', '/bohr/helmholtz-o7w7/v3/dataset_train_1/field/train_1_3.npy', '/bohr/helmholtz-o7w7/v3/dataset_train_1/field/train_1_4.npy'] speed_path /bohr/helmholtz-o7w7/v3/dataset_train_1/speed/train_1.npy
speed可视化
(480, 480) <class 'numpy.float32'> 1500.0
样本基本上都是类似于上图的样子。周围是均匀介质,中间有一个比较复杂的结果。因此体现到波速上,周围是等同的波速(1500),中间有一个比较复杂的波速分布,由此形成比较复杂的波场分布。
field可视化
/bohr/helmholtz-o7w7/v3/dataset_train_1/field/train_1_1.npy /bohr/helmholtz-o7w7/v3/dataset_train_1/field/train_1_2.npy /bohr/helmholtz-o7w7/v3/dataset_train_1/field/train_1_3.npy /bohr/helmholtz-o7w7/v3/dataset_train_1/field/train_1_4.npy (32, 480, 480) <class 'numpy.complex64'> (-326.2337+190.77359j)
field共存储为4个文件,每一个文件存储8个波源位置对应的结果。值得注意的是,field文件的存储格式是numpy.complex64
。与数据集描述相同,待预测结果是一个复数。
实部可视化
上图展示了32个波源对应的仿真结果的实部结果。波源按照逆时针方向旋转。可视化结果与数据集描述中的:圆周上 32 个等角度间隔的不同点为发射器
一致。
虚部可视化
情况与实部类似。
u_homo.npy
除了数据集中的文件外,在官方baseline中还提供了u_homo.npy
数据。这个数据是任务中32个不同发射点作为波源,在均匀介质(水)中传播得到的波场
。
在baseline中,这一数据作为额外的补充数据,用于定义输入波源的参数(src
),此外还有一个由field index定义的theta
用于定义输入波源的位置。详细实现可以参考baseline/dataset.py - File_Loader - __getitem__方法。
(32, 480, 480, 2) <class 'numpy.float32'> -295.13464
u_homo实部可视化
u_homo虚部可视化
可以看到u_homo的波源位置-Index的关系与训练集一致。但是由于是在均质介质中的波场,因此只反映了发射源的特性。





