Showing preview only (234K chars total). Download the full file or copy to clipboard to get everything.
Repository: lanl/OpenFWI
Branch: main
Commit: 48754806b7b4
Files: 38
Total size: 222.0 KB
Directory structure:
gitextract_szcesyxt/
├── LICENSE
├── README.md
├── dataset.py
├── dataset_config.json
├── gan_train.py
├── network.py
├── pytorch_ssim.py
├── rainbow256.npy
├── scheduler.py
├── split_files/
│ ├── curvefault_a_train.txt
│ ├── curvefault_a_val.txt
│ ├── curvefault_b_train.txt
│ ├── curvefault_b_val.txt
│ ├── curvevel_a_train.txt
│ ├── curvevel_a_val.txt
│ ├── curvevel_b_train.txt
│ ├── curvevel_b_val.txt
│ ├── flatfault_a_train.txt
│ ├── flatfault_a_val.txt
│ ├── flatfault_b_train.txt
│ ├── flatfault_b_val.txt
│ ├── flatvel_a_train.txt
│ ├── flatvel_a_val.txt
│ ├── flatvel_b_train.txt
│ ├── flatvel_b_val.txt
│ ├── kaggle_tutorial_train.txt
│ ├── kaggle_tutorial_val.txt
│ ├── style_a_train.txt
│ ├── style_a_val.txt
│ ├── style_b_train.txt
│ ├── style_b_val.txt
│ ├── tutorial_train.txt
│ └── tutorial_val.txt
├── test.py
├── train.py
├── transforms.py
├── utils.py
└── vis.py
================================================
FILE CONTENTS
================================================
================================================
FILE: LICENSE
================================================
BSD 3-Clause License
Copyright (c) 2022, Los Alamos National Laboratory
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: README.md
================================================
This program is open source under the BSD-3 License.
Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and
the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
and the following disclaimer in the documentation and/or other materials provided with the
distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse
or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
[](https://opensource.org/licenses/BSD-3-Clause)
# OpenFWI Benchmarks
> Pytorch Implementation on OpenFWI 2D datasets
## About
This repository officially supports the reproducibility of OpenFWI Benchmarks[[1]](#ref1). The mateirals will evolve with the further development of OpenFWI.
For the time being, it contains the codes for training and testing InversionNet[[2]](#ref2) and VelocityGAN[[3]](#ref3), and covers 10 datasets in __Vel family__, __Fault family__, and __Style family__.
## Prepare Data
First download any dataset from our [website](https://openfwi-lanl.github.io/docs/data.html#vel) and unzip it into your local directory.
### Load a pair of velocity map and seismic data
For any dataset in _Vel, Fault, Style_ family, the data is saved as `.npy` files, each file contains a batch of 500 samples. `datai.npy` refers to the `i-th` sample of seismic data. To load data and check:
```bash
import numpy as np
# load seismic data
seismic_data = np.load('data1.npy')
print(seismic_data.shape) #(500,5,1000,70)
# load velocity map
velocity_map = np.load('model1.npy')
print(velocity_map.shape) #(500,1,70,70)
```
### Prepare training and testing set
Note that there are many ways of organizing training and testing dataset, as long as it is compatible with the [DataLoader module](https://pytorch.org/docs/stable/data.html) in pytorch. Whichever way you choose, please refer to the following table for the train/test split.
| Dataset | Train / test Split | Corresponding `.npy` files |
| ----------- | ----------- | ------------ |
| Vel Family | 24k / 6k | data(model)1-48.npy / data(model)49-60.npy |
| Fault Family | 48k / 6k | data(model)1-96.npy / data(model)97-108.npy |
| Style Family | 60k / 7k | data(model)1-120.npy / data(model)121-134.npy |
A convenient way of loading the data is to use a `.txt` file containing the _location+filename_ of all `.npy` files, parse each line of the `.txt` file and push to the dataloader. Take **flatvel-A** as an exmaple, we create `flatvel-a-train.txt`, organized as the follows, and same for `flatvel-a-test.txt`.
```bash
Dataset_directory/data1.npy
Dataset_directory/data2.npy
...
Dataset_directory/data48.npy
```
**To save time, you can download all the text files from the `splitting_files` folder and change to your own directory.**
## Reproduce the OpenFWI Benchmarks
> For InversionNet and VelocityGAN, the current version supports training with a single GPU. For UPFWI and InversionNet3D, multiple-GPU is necessary due to the computation cost.
### Environment setup
The following packages are required:
- pytorch v1.7.1
- torchvision v0.8.2
- scikit learn
- numpy
- matplotlib (for visualization)
If you other versions of pytorch and torchvision, please make sure they align.
### InversionNet
To train from scratch on Flatvel-A dataset with $\ell_1$ loss, run the following codes:
```
python train.py -ds flatvel-a -n YOUR_DIRECTORY -m InversionNet -g2v 0 --tensorboard -t flatvel_a_train.txt -v flatvel_a_val.txt
```
`-ds` specifies the dataset, `-n` creates the folder containing the saved model other log files, `-g2v` sets the coefficient of $\ell_2$ loss to be zero, `-t` and `-v` assign the training data and test data loading files.
To continue training from a saved checkpoint, run the following codes:
```
python train.py -ds flatvel-a -n YOUR_DIRECTORY -r CHECKPOINT.PTH -m InversionNet -g2v 0 --tensorboard -t flatvel_a_train.txt -v flatvel_a_val.txt
```
Please refer to the details of the codes if you would like to change other parameters (*learning rate,* etc.). These commands suffice to reproduce the OpenFWI benchmarks.
The last step would be testing, where we include the visualization. Also we borrow the implementation of SSIM metric from [pytorch-ssim](https://github.com/Po-Hsun-Su/pytorch-ssim). Please make sure that `pytorch-ssim.py` and `rainbow256.npy` are placed together with others.
```
python test.py -ds flatvel-a -n YOUR_DIRECTORY -m InversionNet -v flatvel_a_val.txt -r CHECKPOINT.PTH --vis -vb 2 -vsa 3
```
`--vis` enables the visualization and creates a folder with the figures, you may also change the amount of velocity maps by playing with `-vb` and `-vsa`.
### VelocityGAN
The code logic of VelocityGAN is almost identical the that of InversionNet.
To train from scratch on Flatvel-A dataset with $\ell_1$ loss, run the following codes:
```
python gan_train.py -ds flatvel-a -n YOUR_DIRECTORY -m InversionNet -g2v 0 --tensorboard -t flatvel_a_train.txt -v flatvel_a_val.txt
```
To continue training from a saved checkpoint, run the following codes:
```
python gan_train.py -ds flatvel-a -n YOUR_DIRECTORY -r CHECKPOINT.PTH -m InversionNet -g2v 0 --tensorboard -t flatvel_a_train.txt -v flatvel_a_val.txt
```
The command for testing is the same with InversionNet
## Future Updates
- We will release the training configuration of Kimberlina-CO2 dataset very soon.
- We will improve the instruction with illustrations and other necessary details
- The codes of UPFWI and InversionNet3D is pending approval, they will be added to this repo once approved.
## References
<a id="ref1">[1]</a>
Deng, Chengyuan, et al. "OpenFWI: Benchmark Seismic Datasets for Machine Learning-Based Full Waveform Inversion." arXiv preprint arXiv:2111.02926 (2021).
<a id="ref2">[1]</a>
Wu, Yue, and Youzuo Lin. "InversionNet: An efficient and accurate data-driven full waveform inversion." IEEE Transactions on Computational Imaging 6 (2019): 419-433.
<a id="ref3">[1]</a>
Zhang, Zhongping, and Youzuo Lin. "Data-driven seismic waveform inversion: A study on the robustness and generalization." IEEE Transactions on Geoscience and Remote sensing 58.10 (2020): 6900-6913.
================================================
FILE: dataset.py
================================================
# © 2022. Triad National Security, LLC. All rights reserved.
# This program was produced under U.S. Government contract 89233218CNA000001 for Los Alamos
# National Laboratory (LANL), which is operated by Triad National Security, LLC for the U.S.
# Department of Energy/National Nuclear Security Administration. All rights in the program are
# reserved by Triad National Security, LLC, and the U.S. Department of Energy/National Nuclear
# Security Administration. The Government is granted for itself and others acting on its behalf a
# nonexclusive, paid-up, irrevocable worldwide license in this material to reproduce, prepare
# derivative works, distribute copies to the public, perform publicly and display publicly, and to permit
# others to do so.
import os
import numpy as np
from torch.utils.data import Dataset
from torchvision.transforms import Compose
import transforms as T
class FWIDataset(Dataset):
''' FWI dataset
For convenience, in this class, a batch refers to a npy file
instead of the batch used during training.
Args:
anno: path to annotation file
preload: whether to load the whole dataset into memory
sample_ratio: downsample ratio for seismic data
file_size: # of samples in each npy file
transform_data|label: transformation applied to data or label
'''
def __init__(self, anno, preload=True, sample_ratio=1, file_size=500,
transform_data=None, transform_label=None):
if not os.path.exists(anno):
print(f'Annotation file {anno} does not exists')
self.preload = preload
self.sample_ratio = sample_ratio
self.file_size = file_size
self.transform_data = transform_data
self.transform_label = transform_label
with open(anno, 'r') as f:
self.batches = f.readlines()
if preload:
self.data_list, self.label_list = [], []
for batch in self.batches:
data, label = self.load_every(batch)
self.data_list.append(data)
if label is not None:
self.label_list.append(label)
# Load from one line
def load_every(self, batch):
batch = batch.split('\t')
data_path = batch[0] if len(batch) > 1 else batch[0][:-1]
data = np.load(data_path)[:, :, ::self.sample_ratio, :]
data = data.astype('float32')
if len(batch) > 1:
label_path = batch[1][:-1]
label = np.load(label_path)
label = label.astype('float32')
else:
label = None
return data, label
def __getitem__(self, idx):
batch_idx, sample_idx = idx // self.file_size, idx % self.file_size
if self.preload:
data = self.data_list[batch_idx][sample_idx]
label = self.label_list[batch_idx][sample_idx] if len(self.label_list) != 0 else None
else:
data, label = self.load_every(self.batches[batch_idx])
data = data[sample_idx]
label = label[sample_idx] if label is not None else None
if self.transform_data:
data = self.transform_data(data)
if self.transform_label and label is not None:
label = self.transform_label(label)
return data, label if label is not None else np.array([])
def __len__(self):
return len(self.batches) * self.file_size
if __name__ == '__main__':
transform_data = Compose([
T.LogTransform(k=1),
T.MinMaxNormalize(T.log_transform(-61, k=1), T.log_transform(120, k=1))
])
transform_label = Compose([
T.MinMaxNormalize(2000, 6000)
])
dataset = FWIDataset(f'relevant_files/temp.txt', transform_data=transform_data, transform_label=transform_label, file_size=1)
data, label = dataset[0]
print(data.shape)
print(label is None)
================================================
FILE: dataset_config.json
================================================
{
"flatvel-a": {
"data_min": -26.95,
"data_max": 52.77,
"label_min": 1500,
"label_max": 4500,
"file_size": 500,
"nbc": 120,
"dx": 10,
"nt": 1000,
"dt": 1e-3,
"f": 15,
"n_grid": 70,
"ns": 5,
"ng": 70,
"sz": 10,
"gz": 10
},
"curvevel-a": {
"data_min": -27.11,
"data_max": 55.10,
"label_min": 1500,
"label_max": 4500,
"file_size": 500,
"nbc": 120,
"dx": 10,
"nt": 1000,
"dt": 1e-3,
"f": 15,
"n_grid": 70,
"ns": 5,
"ng": 70,
"sz": 10,
"gz": 10
},
"flatvel-b": {
"data_min": -27.17,
"data_max": 56.05,
"label_min": 1500,
"label_max": 4500,
"file_size": 500,
"nbc": 120,
"dx": 10,
"nt": 1000,
"dt": 1e-3,
"f": 15,
"n_grid": 70,
"ns": 5,
"ng": 70,
"sz": 10,
"gz": 10
},
"curvevel-b": {
"data_min": -29.04,
"data_max": 57.03,
"label_min": 1500,
"label_max": 4500,
"file_size": 500,
"nbc": 120,
"dx": 10,
"nt": 1000,
"dt": 1e-3,
"f": 15,
"n_grid": 70,
"ns": 5,
"ng": 70,
"sz": 10,
"gz": 10
},
"flatfault-a": {
"data_min": -26.10,
"data_max": 50.86,
"label_min": 1500,
"label_max": 4500,
"file_size": 500,
"nbc": 120,
"dx": 10,
"nt": 1000,
"dt": 1e-3,
"f": 15,
"n_grid": 70,
"ns": 5,
"ng": 70,
"sz": 10,
"gz": 10
},
"curvefault-a": {
"data_min": -26.48,
"data_max": 52.32,
"label_min": 1500,
"label_max": 4500,
"file_size": 500,
"nbc": 120,
"dx": 10,
"nt": 1000,
"dt": 1e-3,
"f": 15,
"n_grid": 70,
"ns": 5,
"ng": 70,
"sz": 10,
"gz": 10
},
"flatfault-b": {
"data_min": -24.86,
"data_max": 50.28,
"label_min": 1500,
"label_max": 4500,
"file_size": 500,
"nbc": 120,
"dx": 10,
"nt": 1000,
"dt": 1e-3,
"f": 15,
"n_grid": 70,
"ns": 5,
"ng": 70,
"sz": 10,
"gz": 10
},
"curvefault-b": {
"data_min": -24.93,
"data_max": 50.98,
"label_min": 1500,
"label_max": 4500,
"file_size": 500,
"nbc": 120,
"dx": 10,
"nt": 1000,
"dt": 1e-3,
"f": 15,
"n_grid": 70,
"ns": 5,
"ng": 70,
"sz": 10,
"gz": 10
},
"style-a": {
"data_min": -24.96,
"data_max": 48.93,
"label_min": 1500,
"label_max": 4500,
"file_size": 500,
"nbc": 120,
"dx": 10,
"nt": 1000,
"dt": 1e-3,
"f": 15,
"n_grid": 70,
"ns": 5,
"ng": 70,
"sz": 10,
"gz": 10
},
"style-b": {
"data_min": -23.76,
"data_max": 46.01,
"label_min": 1500,
"label_max": 4500,
"file_size": 500,
"nbc": 120,
"dx": 10,
"nt": 1000,
"dt": 1e-3,
"f": 15,
"n_grid": 70,
"ns": 5,
"ng": 70,
"sz": 10,
"gz": 10
},
"flatvel-tutorial": {
"data_min": -26.95,
"data_max": 52.77,
"label_min": 1500,
"label_max": 4500,
"file_size": 120,
"nbc": 120,
"dx": 10,
"nt": 1000,
"dt": 1e-3,
"f": 15,
"n_grid": 70,
"ns": 5,
"ng": 70,
"sz": 10,
"gz": 10
}
}
================================================
FILE: gan_train.py
================================================
# © 2022. Triad National Security, LLC. All rights reserved.
# This program was produced under U.S. Government contract 89233218CNA000001 for Los Alamos
# National Laboratory (LANL), which is operated by Triad National Security, LLC for the U.S.
# Department of Energy/National Nuclear Security Administration. All rights in the program are
# reserved by Triad National Security, LLC, and the U.S. Department of Energy/National Nuclear
# Security Administration. The Government is granted for itself and others acting on its behalf a
# nonexclusive, paid-up, irrevocable worldwide license in this material to reproduce, prepare
# derivative works, distribute copies to the public, perform publicly and display publicly, and to permit
# others to do so.
import os
import sys
import time
import datetime
import json
import torch
from torch import nn
from torch.utils.data import RandomSampler, DataLoader
from torch.utils.data.dataloader import default_collate
from torch.utils.data.distributed import DistributedSampler
from torch.utils.tensorboard import SummaryWriter
import torchvision
from torchvision.transforms import Compose
import utils
import network
from dataset import FWIDataset
from scheduler import WarmupMultiStepLR
import transforms as T
# Need to use parallel in apex, torch ddp can cause bugs when computing gradient penalty
import apex.parallel as parallel
step = 0
def train_one_epoch(model, model_d, criterion_g, criterion_d, optimizer_g, optimizer_d,
lr_schedulers, dataloader, device, epoch, print_freq, writer, n_critic=5):
global step
model.train()
model_d.train()
# Logger setup
metric_logger = utils.MetricLogger(delimiter=' ')
metric_logger.add_meter('lr_g', utils.SmoothedValue(window_size=1, fmt='{value}'))
metric_logger.add_meter('lr_d', utils.SmoothedValue(window_size=1, fmt='{value}'))
metric_logger.add_meter('samples/s', utils.SmoothedValue(window_size=10, fmt='{value:.3f}'))
header = 'Epoch: [{}]'.format(epoch)
itr = 0 # step in this epoch
max_itr = len(dataloader)
for data, label in metric_logger.log_every(dataloader, print_freq, header):
start_time = time.time()
data, label = data.to(device), label.to(device)
# Update discribminator first
optimizer_d.zero_grad()
with torch.no_grad():
pred = model(data)
loss_d, loss_diff, loss_gp = criterion_d(label, pred, model_d)
loss_d.backward()
optimizer_d.step()
metric_logger.update(loss_diff=loss_diff, loss_gp=loss_gp)
# Update generator occasionally
if ((itr + 1) % n_critic == 0) or (itr == max_itr - 1):
optimizer_g.zero_grad()
pred = model(data)
loss_g, loss_g1v, loss_g2v = criterion_g(pred, label, model_d)
loss_g.backward()
optimizer_g.step()
metric_logger.update(loss_g1v=loss_g1v, loss_g2v=loss_g2v)
batch_size = data.shape[0]
metric_logger.update(lr_g=optimizer_g.param_groups[0]['lr'],
lr_d=optimizer_d.param_groups[0]['lr'])
metric_logger.meters['samples/s'].update(batch_size / (time.time() - start_time))
if writer:
writer.add_scalar('loss_diff', loss_diff, step)
writer.add_scalar('loss_gp', loss_gp, step)
if ((itr + 1) % n_critic == 0) or (itr == max_itr - 1):
writer.add_scalar('loss_g1v', loss_g1v, step)
writer.add_scalar('loss_g2v', loss_g2v, step)
step += 1
itr += 1
for lr_scheduler in lr_schedulers:
lr_scheduler.step()
def evaluate(model, criterion, dataloader, device, writer):
model.eval()
metric_logger = utils.MetricLogger(delimiter=' ')
header = 'Test:'
with torch.no_grad():
for data, label in metric_logger.log_every(dataloader, 20, header):
data = data.to(device, non_blocking=True)
label = label.to(device, non_blocking=True)
pred = model(data)
loss, loss_g1v, loss_g2v = criterion(pred, label)
metric_logger.update(loss=loss.item(),
loss_g1v=loss_g1v.item(), loss_g2v=loss_g2v.item())
# Gather the stats from all processes
metric_logger.synchronize_between_processes()
print(' * Loss {loss.global_avg:.8f}\n'.format(loss=metric_logger.loss))
if writer:
writer.add_scalar('loss', metric_logger.loss.global_avg, step)
writer.add_scalar('loss_g1v', metric_logger.loss_g1v.global_avg, step)
writer.add_scalar('loss_g2v', metric_logger.loss_g2v.global_avg, step)
return metric_logger.loss.global_avg
def main(args):
global step
print(args)
print('torch version: ', torch.__version__)
print('torchvision version: ', torchvision.__version__)
utils.mkdir(args.output_path) # create folder to store checkpoints
utils.init_distributed_mode(args) # distributed mode initialization
# Set up tensorboard summary writer
train_writer, val_writer = None, None
if args.tensorboard:
utils.mkdir(args.log_path) # create folder to store tensorboard logs
if not args.distributed or (args.rank == 0) and (args.local_rank == 0):
train_writer = SummaryWriter(os.path.join(args.output_path, 'logs', 'train'))
val_writer = SummaryWriter(os.path.join(args.output_path, 'logs', 'val'))
device = torch.device(args.device)
torch.backends.cudnn.benchmark = True
with open('dataset_config.json') as f:
try:
ctx = json.load(f)[args.dataset]
except KeyError:
print('Unsupported dataset.')
sys.exit()
if args.file_size is not None:
ctx['file_size'] = args.file_size
# Create dataset and dataloader
print('Loading data')
print('Loading training data')
log_data_min = T.log_transform(ctx['data_min'], k=args.k)
log_data_max = T.log_transform(ctx['data_max'], k=args.k)
transform_data = Compose([
T.LogTransform(k=args.k),
T.MinMaxNormalize(log_data_min, log_data_max)
])
transform_label = Compose([
T.MinMaxNormalize(ctx['label_min'], ctx['label_max'])
])
if args.train_anno[-3:] == 'txt':
dataset_train = FWIDataset(
args.train_anno,
preload=True,
sample_ratio=args.sample_temporal,
file_size=ctx['file_size'],
transform_data=transform_data,
transform_label=transform_label
)
else:
dataset_train = torch.load(args.train_anno)
print('Loading validation data')
if args.val_anno[-3:] == 'txt':
dataset_valid = FWIDataset(
args.val_anno,
preload=True,
sample_ratio=args.sample_temporal,
file_size=ctx['file_size'],
transform_data=transform_data,
transform_label=transform_label
)
else:
dataset_valid = torch.load(args.val_anno)
print('Creating data loaders')
if args.distributed:
train_sampler = DistributedSampler(dataset_train, shuffle=True)
valid_sampler = DistributedSampler(dataset_valid, shuffle=True)
else:
train_sampler = RandomSampler(dataset_train)
valid_sampler = RandomSampler(dataset_valid)
dataloader_train = DataLoader(
dataset_train, batch_size=args.batch_size,
sampler=train_sampler, num_workers=args.workers,
pin_memory=True, drop_last=True, collate_fn=default_collate)
dataloader_valid = DataLoader(
dataset_valid, batch_size=args.batch_size,
sampler=valid_sampler, num_workers=args.workers,
pin_memory=True, collate_fn=default_collate)
print('Creating model')
if args.model not in network.model_dict or args.model_d not in network.model_dict:
print('Unsupported model.')
sys.exit()
model = network.model_dict[args.model](upsample_mode=args.up_mode,
sample_spatial=args.sample_spatial, sample_temporal=args.sample_temporal).to(device)
model_d = network.model_dict[args.model_d]().to(device)
if args.distributed and args.sync_bn:
model = parallel.convert_syncbn_model(model)
model_d = parallel.convert_syncbn_model(model_d)
# Define loss function
l1loss = nn.L1Loss()
l2loss = nn.MSELoss()
def criterion_g(pred, gt, model_d=None):
loss_g1v = l1loss(pred, gt)
loss_g2v = l2loss(pred, gt)
loss = args.lambda_g1v * loss_g1v + args.lambda_g2v * loss_g2v
if model_d is not None:
loss_adv = -torch.mean(model_d(pred))
loss += args.lambda_adv * loss_adv
return loss, loss_g1v, loss_g2v
criterion_d = utils.Wasserstein_GP(device, args.lambda_gp)
# Scale lr according to effective batch size
lr_g = args.lr_g * args.world_size
lr_d = args.lr_d * args.world_size
optimizer_g = torch.optim.AdamW(model.parameters(), lr=lr_g, betas=(0, 0.9), weight_decay=args.weight_decay)
optimizer_d = torch.optim.AdamW(model_d.parameters(), lr=lr_d, betas=(0, 0.9), weight_decay=args.weight_decay)
# Convert scheduler to be per iteration instead of per epoch
warmup_iters = args.lr_warmup_epochs * len(dataloader_train)
lr_milestones = [len(dataloader_train) * m for m in args.lr_milestones]
lr_schedulers = [WarmupMultiStepLR(
optimizer, milestones=lr_milestones, gamma=args.lr_gamma,
warmup_iters=warmup_iters, warmup_factor=1e-5) for optimizer in [optimizer_g, optimizer_d]]
model_without_ddp = model
model_d_without_ddp = model_d
if args.distributed:
model = parallel.DistributedDataParallel(model)
model_d = parallel.DistributedDataParallel(model_d)
model_without_ddp = model.module
model_d_without_ddp = model_d.module
if args.resume:
checkpoint = torch.load(args.resume, map_location='cpu')
model_without_ddp.load_state_dict(network.replace_legacy(checkpoint['model']))
model_d_without_ddp.load_state_dict(network.replace_legacy(checkpoint['model_d']))
optimizer_g.load_state_dict(checkpoint['optimizer_g'])
optimizer_d.load_state_dict(checkpoint['optimizer_d'])
args.start_epoch = checkpoint['epoch'] + 1
step = checkpoint['step']
for i in range(len(lr_schedulers)):
lr_schedulers[i].load_state_dict(checkpoint['lr_schedulers'][i])
for lr_scheduler in lr_schedulers:
lr_scheduler.milestones = lr_milestones
print('Start training')
start_time = time.time()
for epoch in range(args.start_epoch, args.epochs):
if args.distributed:
train_sampler.set_epoch(epoch)
train_one_epoch(model, model_d, criterion_g, criterion_d, optimizer_g, optimizer_d,
lr_schedulers, dataloader_train, device, epoch,
args.print_freq, train_writer, args.n_critic)
evaluate(model, criterion_g, dataloader_valid, device, val_writer)
checkpoint = {
'model': model_without_ddp.state_dict(),
'model_d': model_d_without_ddp.state_dict(),
'optimizer_g': optimizer_g.state_dict(),
'optimizer_d': optimizer_d.state_dict(),
'lr_schedulers': [scheduler.state_dict() for scheduler in lr_schedulers],
'epoch': epoch,
'step': step,
'args': args}
# Save checkpoint per epoch
utils.save_on_master(
checkpoint,
os.path.join(args.output_path, 'checkpoint.pth'))
# Save checkpoint every epoch block
if args.output_path and (epoch + 1) % args.epoch_block == 0:
utils.save_on_master(
checkpoint,
os.path.join(args.output_path, 'model_{}.pth'.format(epoch + 1)))
total_time = time.time() - start_time
total_time_str = str(datetime.timedelta(seconds=int(total_time)))
print('Training time {}'.format(total_time_str))
def parse_args():
import argparse
parser = argparse.ArgumentParser(description='GAN Training')
parser.add_argument('-d', '--device', default='cuda', help='device')
parser.add_argument('-ds', '--dataset', default='flat', type=str, help='dataset name')
parser.add_argument('-fs', '--file-size', default=None, type=str, help='number of samples in each npy file')
# Path related
parser.add_argument('-ap', '--anno-path', default='/vast/home/aicyd/Desktop/OpenFWI/src/', help='annotation files location')
parser.add_argument('-t', '--train-anno', default='train_flatvel.json', help='name of train anno')
parser.add_argument('-v', '--val-anno', default='val_flatvel.json', help='name of val anno')
parser.add_argument('-o', '--output-path', default='models', help='path to parent folder to save checkpoints')
parser.add_argument('-l', '--log-path', default='models', help='path to parent folder to save logs')
parser.add_argument('-n', '--save-name', default='gan', help='folder name for this experiment')
parser.add_argument('-s', '--suffix', type=str, default=None, help='subfolder name for this run')
# Model related
parser.add_argument('-m', '--model', type=str, help='generator name')
parser.add_argument('-md', '--model-d', default='Discriminator', help='discriminator name')
parser.add_argument('-um', '--up-mode', default=None, help='upsampling layer mode such as "nearest", "bicubic", etc.')
parser.add_argument('-ss', '--sample-spatial', type=float, default=1.0, help='spatial sampling ratio')
parser.add_argument('-st', '--sample-temporal', type=int, default=1, help='temporal sampling ratio')
# Training related
parser.add_argument('-nc', '--n_critic', default=5, type=int, help='generator & discriminator update ratio')
parser.add_argument('-b', '--batch-size', default=64, type=int)
parser.add_argument('--lr_g', default=0.0001, type=float, help='initial learning rate of generator')
parser.add_argument('--lr_d', default=0.0001, type=float, help='initial learning rate of discriminator')
parser.add_argument('-lm', '--lr-milestones', nargs='+', default=[], type=int, help='decrease lr on milestones')
parser.add_argument('--momentum', default=0.9, type=float, help='momentum')
parser.add_argument('--weight-decay', default=1e-4 , type=float, help='weight decay (default: 1e-4)')
parser.add_argument('--lr-gamma', default=0.1, type=float, help='decrease lr by a factor of lr-gamma')
parser.add_argument('--lr-warmup-epochs', default=0, type=int, help='number of warmup epochs')
parser.add_argument('-eb', '--epoch_block', type=int, default=20, help='epochs in a saved block')
parser.add_argument('-nb', '--num_block', type=int, default=25, help='number of saved block')
parser.add_argument('-j', '--workers', default=16, type=int, help='number of data loading workers (default: 16)')
parser.add_argument('--k', default=1, type=float, help='k in log transformation')
parser.add_argument('--print-freq', default=20, type=int, help='print frequency')
parser.add_argument('-r', '--resume', default=None, help='resume from checkpoint')
parser.add_argument('--start-epoch', default=0, type=int, help='start epoch')
# Loss related
parser.add_argument('-g1v', '--lambda_g1v', type=float, default=100.0)
parser.add_argument('-g2v', '--lambda_g2v', type=float, default=100.0)
parser.add_argument('-adv', '--lambda_adv', type=float, default=1.0)
parser.add_argument('-gp', '--lambda_gp', type=float, default=10.0)
# Distributed training related
parser.add_argument('--sync-bn', action='store_true', help='Use sync batch norm')
parser.add_argument('--world-size', default=1, type=int, help='number of distributed processes')
parser.add_argument('--dist-url', default='env://', help='url used to set up distributed training')
# Tensorboard related
parser.add_argument('--tensorboard', action='store_true', help='Use tensorboard for logging.')
args = parser.parse_args()
args.output_path = os.path.join(args.output_path, args.save_name, args.suffix or '')
args.log_path = os.path.join(args.log_path, args.save_name, args.suffix or '')
args.train_anno = os.path.join(args.anno_path, args.train_anno)
args.val_anno = os.path.join(args.anno_path, args.val_anno)
args.epochs = args.epoch_block * args.num_block
if args.resume:
args.resume = os.path.join(args.output_path, args.resume)
return args
if __name__ == '__main__':
args = parse_args()
main(args)
================================================
FILE: network.py
================================================
# © 2022. Triad National Security, LLC. All rights reserved.
# This program was produced under U.S. Government contract 89233218CNA000001 for Los Alamos
# National Laboratory (LANL), which is operated by Triad National Security, LLC for the U.S.
# Department of Energy/National Nuclear Security Administration. All rights in the program are
# reserved by Triad National Security, LLC, and the U.S. Department of Energy/National Nuclear
# Security Administration. The Government is granted for itself and others acting on its behalf a
# nonexclusive, paid-up, irrevocable worldwide license in this material to reproduce, prepare
# derivative works, distribute copies to the public, perform publicly and display publicly, and to permit
# others to do so.
import torch
import torch.nn as nn
import torch.nn.functional as F
from math import ceil
from collections import OrderedDict
NORM_LAYERS = { 'bn': nn.BatchNorm2d, 'in': nn.InstanceNorm2d, 'ln': nn.LayerNorm }
# Replace the key names in the checkpoint in which legacy network building blocks are used
def replace_legacy(old_dict):
li = []
for k, v in old_dict.items():
k = (k.replace('Conv2DwithBN', 'layers')
.replace('Conv2DwithBN_Tanh', 'layers')
.replace('Deconv2DwithBN', 'layers')
.replace('ResizeConv2DwithBN', 'layers'))
li.append((k, v))
return OrderedDict(li)
class Conv2DwithBN(nn.Module):
def __init__(self, in_fea, out_fea,
kernel_size=3, stride=1, padding=1,
bn=True, relu_slop=0.2, dropout=None):
super(Conv2DwithBN,self).__init__()
layers = [nn.Conv2d(in_channels=in_fea, out_channels=out_fea, kernel_size=kernel_size, stride=stride, padding=padding)]
if bn:
layers.append(nn.BatchNorm2d(num_features=out_fea))
layers.append(nn.LeakyReLU(relu_slop, inplace=True))
if dropout:
layers.append(nn.Dropout2d(0.8))
self.Conv2DwithBN = nn.Sequential(*layers)
def forward(self, x):
return self.Conv2DwithBN(x)
class ResizeConv2DwithBN(nn.Module):
def __init__(self, in_fea, out_fea, scale_factor=2, mode='nearest'):
super(ResizeConv2DwithBN, self).__init__()
layers = [nn.Upsample(scale_factor=scale_factor, mode=mode)]
layers.append(nn.Conv2d(in_channels=in_fea, out_channels=out_fea, kernel_size=3, stride=1, padding=1))
layers.append(nn.BatchNorm2d(num_features=out_fea))
layers.append(nn.LeakyReLU(0.2, inplace=True))
self.ResizeConv2DwithBN = nn.Sequential(*layers)
def forward(self, x):
return self.ResizeConv2DwithBN(x)
class Conv2DwithBN_Tanh(nn.Module):
def __init__(self, in_fea, out_fea, kernel_size=3, stride=1, padding=1):
super(Conv2DwithBN_Tanh, self).__init__()
layers = [nn.Conv2d(in_channels=in_fea, out_channels=out_fea, kernel_size=kernel_size, stride=stride, padding=padding)]
layers.append(nn.BatchNorm2d(num_features=out_fea))
layers.append(nn.Tanh())
self.Conv2DwithBN = nn.Sequential(*layers)
def forward(self, x):
return self.Conv2DwithBN(x)
class ConvBlock(nn.Module):
def __init__(self, in_fea, out_fea, kernel_size=3, stride=1, padding=1, norm='bn', relu_slop=0.2, dropout=None):
super(ConvBlock,self).__init__()
layers = [nn.Conv2d(in_channels=in_fea, out_channels=out_fea, kernel_size=kernel_size, stride=stride, padding=padding)]
if norm in NORM_LAYERS:
layers.append(NORM_LAYERS[norm](out_fea))
layers.append(nn.LeakyReLU(relu_slop, inplace=True))
if dropout:
layers.append(nn.Dropout2d(0.8))
self.layers = nn.Sequential(*layers)
def forward(self, x):
return self.layers(x)
class ConvBlock_Tanh(nn.Module):
def __init__(self, in_fea, out_fea, kernel_size=3, stride=1, padding=1, norm='bn'):
super(ConvBlock_Tanh, self).__init__()
layers = [nn.Conv2d(in_channels=in_fea, out_channels=out_fea, kernel_size=kernel_size, stride=stride, padding=padding)]
if norm in NORM_LAYERS:
layers.append(NORM_LAYERS[norm](out_fea))
layers.append(nn.Tanh())
self.layers = nn.Sequential(*layers)
def forward(self, x):
return self.layers(x)
class DeconvBlock(nn.Module):
def __init__(self, in_fea, out_fea, kernel_size=2, stride=2, padding=0, output_padding=0, norm='bn'):
super(DeconvBlock, self).__init__()
layers = [nn.ConvTranspose2d(in_channels=in_fea, out_channels=out_fea, kernel_size=kernel_size, stride=stride, padding=padding, output_padding=output_padding)]
if norm in NORM_LAYERS:
layers.append(NORM_LAYERS[norm](out_fea))
layers.append(nn.LeakyReLU(0.2, inplace=True))
self.layers = nn.Sequential(*layers)
def forward(self, x):
return self.layers(x)
class ResizeBlock(nn.Module):
def __init__(self, in_fea, out_fea, scale_factor=2, mode='nearest', norm='bn'):
super(ResizeBlock, self).__init__()
layers = [nn.Upsample(scale_factor=scale_factor, mode=mode)]
layers.append(nn.Conv2d(in_channels=in_fea, out_channels=out_fea, kernel_size=3, stride=1, padding=1))
if norm in NORM_LAYERS:
layers.append(NORM_LAYERS[norm](out_fea))
layers.append(nn.LeakyReLU(0.2, inplace=True))
self.layers = nn.Sequential(*layers)
def forward(self, x):
return self.layers(x)
# FlatFault/CurveFault
# 1000, 70 -> 70, 70
class InversionNet(nn.Module):
def __init__(self, dim1=32, dim2=64, dim3=128, dim4=256, dim5=512, sample_spatial=1.0, **kwargs):
super(InversionNet, self).__init__()
self.convblock1 = ConvBlock(5, dim1, kernel_size=(7, 1), stride=(2, 1), padding=(3, 0))
self.convblock2_1 = ConvBlock(dim1, dim2, kernel_size=(3, 1), stride=(2, 1), padding=(1, 0))
self.convblock2_2 = ConvBlock(dim2, dim2, kernel_size=(3, 1), padding=(1, 0))
self.convblock3_1 = ConvBlock(dim2, dim2, kernel_size=(3, 1), stride=(2, 1), padding=(1, 0))
self.convblock3_2 = ConvBlock(dim2, dim2, kernel_size=(3, 1), padding=(1, 0))
self.convblock4_1 = ConvBlock(dim2, dim3, kernel_size=(3, 1), stride=(2, 1), padding=(1, 0))
self.convblock4_2 = ConvBlock(dim3, dim3, kernel_size=(3, 1), padding=(1, 0))
self.convblock5_1 = ConvBlock(dim3, dim3, stride=2)
self.convblock5_2 = ConvBlock(dim3, dim3)
self.convblock6_1 = ConvBlock(dim3, dim4, stride=2)
self.convblock6_2 = ConvBlock(dim4, dim4)
self.convblock7_1 = ConvBlock(dim4, dim4, stride=2)
self.convblock7_2 = ConvBlock(dim4, dim4)
self.convblock8 = ConvBlock(dim4, dim5, kernel_size=(8, ceil(70 * sample_spatial / 8)), padding=0)
self.deconv1_1 = DeconvBlock(dim5, dim5, kernel_size=5)
self.deconv1_2 = ConvBlock(dim5, dim5)
self.deconv2_1 = DeconvBlock(dim5, dim4, kernel_size=4, stride=2, padding=1)
self.deconv2_2 = ConvBlock(dim4, dim4)
self.deconv3_1 = DeconvBlock(dim4, dim3, kernel_size=4, stride=2, padding=1)
self.deconv3_2 = ConvBlock(dim3, dim3)
self.deconv4_1 = DeconvBlock(dim3, dim2, kernel_size=4, stride=2, padding=1)
self.deconv4_2 = ConvBlock(dim2, dim2)
self.deconv5_1 = DeconvBlock(dim2, dim1, kernel_size=4, stride=2, padding=1)
self.deconv5_2 = ConvBlock(dim1, dim1)
self.deconv6 = ConvBlock_Tanh(dim1, 1)
def forward(self,x):
# Encoder Part
x = self.convblock1(x) # (None, 32, 500, 70)
x = self.convblock2_1(x) # (None, 64, 250, 70)
x = self.convblock2_2(x) # (None, 64, 250, 70)
x = self.convblock3_1(x) # (None, 64, 125, 70)
x = self.convblock3_2(x) # (None, 64, 125, 70)
x = self.convblock4_1(x) # (None, 128, 63, 70)
x = self.convblock4_2(x) # (None, 128, 63, 70)
x = self.convblock5_1(x) # (None, 128, 32, 35)
x = self.convblock5_2(x) # (None, 128, 32, 35)
x = self.convblock6_1(x) # (None, 256, 16, 18)
x = self.convblock6_2(x) # (None, 256, 16, 18)
x = self.convblock7_1(x) # (None, 256, 8, 9)
x = self.convblock7_2(x) # (None, 256, 8, 9)
x = self.convblock8(x) # (None, 512, 1, 1)
# Decoder Part
x = self.deconv1_1(x) # (None, 512, 5, 5)
x = self.deconv1_2(x) # (None, 512, 5, 5)
x = self.deconv2_1(x) # (None, 256, 10, 10)
x = self.deconv2_2(x) # (None, 256, 10, 10)
x = self.deconv3_1(x) # (None, 128, 20, 20)
x = self.deconv3_2(x) # (None, 128, 20, 20)
x = self.deconv4_1(x) # (None, 64, 40, 40)
x = self.deconv4_2(x) # (None, 64, 40, 40)
x = self.deconv5_1(x) # (None, 32, 80, 80)
x = self.deconv5_2(x) # (None, 32, 80, 80)
x = F.pad(x, [-5, -5, -5, -5], mode="constant", value=0) # (None, 32, 70, 70) 125, 100
x = self.deconv6(x) # (None, 1, 70, 70)
return x
class FCN4_Deep_Resize_2(nn.Module):
def __init__(self, dim1=32, dim2=64, dim3=128, dim4=256, dim5=512, ratio=1.0, upsample_mode='nearest'):
super(FCN4_Deep_Resize_2, self).__init__()
self.convblock1 = Conv2DwithBN(5, dim1, kernel_size=(7, 1), stride=(2, 1), padding=(3, 0))
self.convblock2_1 = Conv2DwithBN(dim1, dim2, kernel_size=(3, 1), stride=(2, 1), padding=(1, 0))
self.convblock2_2 = Conv2DwithBN(dim2, dim2, kernel_size=(3, 1), padding=(1, 0))
self.convblock3_1 = Conv2DwithBN(dim2, dim2, kernel_size=(3, 1), stride=(2, 1), padding=(1, 0))
self.convblock3_2 = Conv2DwithBN(dim2, dim2, kernel_size=(3, 1), padding=(1, 0))
self.convblock4_1 = Conv2DwithBN(dim2, dim3, kernel_size=(3, 1), stride=(2, 1), padding=(1, 0))
self.convblock4_2 = Conv2DwithBN(dim3, dim3, kernel_size=(3, 1), padding=(1, 0))
self.convblock5_1 = Conv2DwithBN(dim3, dim3, stride=2)
self.convblock5_2 = Conv2DwithBN(dim3, dim3)
self.convblock6_1 = Conv2DwithBN(dim3, dim4, stride=2)
self.convblock6_2 = Conv2DwithBN(dim4, dim4)
self.convblock7_1 = Conv2DwithBN(dim4, dim4, stride=2)
self.convblock7_2 = Conv2DwithBN(dim4, dim4)
self.convblock8 = Conv2DwithBN(dim4, dim5, kernel_size=(8, ceil(70 * ratio / 8)), padding=0)
self.deconv1_1 = ResizeConv2DwithBN(dim5, dim5, scale_factor=5, mode=upsample_mode)
self.deconv1_2 = Conv2DwithBN(dim5, dim5)
self.deconv2_1 = ResizeConv2DwithBN(dim5, dim4, scale_factor=2, mode=upsample_mode)
self.deconv2_2 = Conv2DwithBN(dim4, dim4)
self.deconv3_1 = ResizeConv2DwithBN(dim4, dim3, scale_factor=2, mode=upsample_mode)
self.deconv3_2 = Conv2DwithBN(dim3, dim3)
self.deconv4_1 = ResizeConv2DwithBN(dim3, dim2, scale_factor=2, mode=upsample_mode)
self.deconv4_2 = Conv2DwithBN(dim2, dim2)
self.deconv5_1 = ResizeConv2DwithBN(dim2, dim1, scale_factor=2, mode=upsample_mode)
self.deconv5_2 = Conv2DwithBN(dim1, dim1)
self.deconv6 = Conv2DwithBN_Tanh(dim1, 1)
def forward(self,x):
# Encoder Part
x = self.convblock1(x) # (None, 32, 500, 70)
x = self.convblock2_1(x) # (None, 64, 250, 70)
x = self.convblock2_2(x) # (None, 64, 250, 70)
x = self.convblock3_1(x) # (None, 64, 125, 70)
x = self.convblock3_2(x) # (None, 64, 125, 70)
x = self.convblock4_1(x) # (None, 128, 63, 70)
x = self.convblock4_2(x) # (None, 128, 63, 70)
x = self.convblock5_1(x) # (None, 128, 32, 35)
x = self.convblock5_2(x) # (None, 128, 32, 35)
x = self.convblock6_1(x) # (None, 256, 16, 18)
x = self.convblock6_2(x) # (None, 256, 16, 18)
x = self.convblock7_1(x) # (None, 256, 8, 9)
x = self.convblock7_2(x) # (None, 256, 8, 9)
x = self.convblock8(x) # (None, 512, 1, 1)
# Decoder Part
x = self.deconv1_1(x) # (None, 512, 5, 5)
x = self.deconv1_2(x) # (None, 512, 5, 5)
x = self.deconv2_1(x) # (None, 256, 10, 10)
x = self.deconv2_2(x) # (None, 256, 10, 10)
x = self.deconv3_1(x) # (None, 128, 20, 20)
x = self.deconv3_2(x) # (None, 128, 20, 20)
x = self.deconv4_1(x) # (None, 64, 40, 40)
x = self.deconv4_2(x) # (None, 64, 40, 40)
x = self.deconv5_1(x) # (None, 32, 80, 80)
x = self.deconv5_2(x) # (None, 32, 80, 80)
x = F.pad(x, [-5, -5, -5, -5], mode="constant", value=0) # (None, 32, 70, 70)
x = self.deconv6(x) # (None, 1, 70, 70)
return x
class Discriminator(nn.Module):
def __init__(self, dim1=32, dim2=64, dim3=128, dim4=256, **kwargs):
super(Discriminator, self).__init__()
self.convblock1_1 = ConvBlock(1, dim1, stride=2)
self.convblock1_2 = ConvBlock(dim1, dim1)
self.convblock2_1 = ConvBlock(dim1, dim2, stride=2)
self.convblock2_2 = ConvBlock(dim2, dim2)
self.convblock3_1 = ConvBlock(dim2, dim3, stride=2)
self.convblock3_2 = ConvBlock(dim3, dim3)
self.convblock4_1 = ConvBlock(dim3, dim4, stride=2)
self.convblock4_2 = ConvBlock(dim4, dim4)
self.convblock5 = ConvBlock(dim4, 1, kernel_size=5, padding=0)
def forward(self, x):
x = self.convblock1_1(x)
x = self.convblock1_2(x)
x = self.convblock2_1(x)
x = self.convblock2_2(x)
x = self.convblock3_1(x)
x = self.convblock3_2(x)
x = self.convblock4_1(x)
x = self.convblock4_2(x)
x = self.convblock5(x)
x = x.view(x.shape[0], -1)
return x
class Conv_HPGNN(nn.Module):
def __init__(self, in_fea, out_fea, kernel_size=None, stride=None, padding=None, **kwargs):
super(Conv_HPGNN, self).__init__()
layers = [
ConvBlock(in_fea, out_fea, relu_slop=0.1, dropout=0.8),
ConvBlock(out_fea, out_fea, relu_slop=0.1, dropout=0.8),
]
if kernel_size is not None:
layers.append(nn.MaxPool2d(kernel_size=kernel_size, stride=stride, padding=padding))
self.layers = nn.Sequential(*layers)
def forward(self, x):
return self.layers(x)
class Deconv_HPGNN(nn.Module):
def __init__(self, in_fea, out_fea, kernel_size, **kwargs):
super(Deconv_HPGNN, self).__init__()
layers = [
nn.ConvTranspose2d(in_fea, in_fea, kernel_size=kernel_size, stride=2, padding=0),
ConvBlock(in_fea, out_fea, relu_slop=0.1, dropout=0.8),
ConvBlock(out_fea, out_fea, relu_slop=0.1, dropout=0.8)
]
self.layers = nn.Sequential(*layers)
def forward(self, x):
return self.layers(x)
model_dict = {
'InversionNet': InversionNet,
'Discriminator': Discriminator,
'UPFWI': FCN4_Deep_Resize_2
}
================================================
FILE: pytorch_ssim.py
================================================
# From https://github.com/Po-Hsun-Su/pytorch-ssim/blob/master/pytorch_ssim/__init__.py
import torch
import torch.nn.functional as F
from torch.autograd import Variable
import numpy as np
from math import exp
def gaussian(window_size, sigma):
gauss = torch.Tensor([exp(-(x - window_size//2)**2/float(2*sigma**2)) for x in range(window_size)])
return gauss/gauss.sum()
def create_window(window_size, channel):
_1D_window = gaussian(window_size, 1.5).unsqueeze(1)
_2D_window = _1D_window.mm(_1D_window.t()).float().unsqueeze(0).unsqueeze(0)
window = Variable(_2D_window.expand(channel, 1, window_size, window_size).contiguous())
return window
def _ssim(img1, img2, window, window_size, channel, size_average = True):
mu1 = F.conv2d(img1, window, padding = window_size//2, groups = channel)
mu2 = F.conv2d(img2, window, padding = window_size//2, groups = channel)
mu1_sq = mu1.pow(2)
mu2_sq = mu2.pow(2)
mu1_mu2 = mu1*mu2
sigma1_sq = F.conv2d(img1*img1, window, padding = window_size//2, groups = channel) - mu1_sq
sigma2_sq = F.conv2d(img2*img2, window, padding = window_size//2, groups = channel) - mu2_sq
sigma12 = F.conv2d(img1*img2, window, padding = window_size//2, groups = channel) - mu1_mu2
C1 = 0.01**2
C2 = 0.03**2
ssim_map = ((2*mu1_mu2 + C1)*(2*sigma12 + C2))/((mu1_sq + mu2_sq + C1)*(sigma1_sq + sigma2_sq + C2))
if size_average:
return ssim_map.mean()
else:
return ssim_map.mean(1).mean(1).mean(1)
class SSIM(torch.nn.Module):
def __init__(self, window_size = 11, size_average = True):
super(SSIM, self).__init__()
self.window_size = window_size
self.size_average = size_average
self.channel = 1
self.window = create_window(window_size, self.channel)
def forward(self, img1, img2):
(_, channel, _, _) = img1.size()
if channel == self.channel and self.window.data.type() == img1.data.type():
window = self.window
else:
window = create_window(self.window_size, channel)
if img1.is_cuda:
window = window.cuda(img1.get_device())
window = window.type_as(img1)
self.window = window
self.channel = channel
return _ssim(img1, img2, window, self.window_size, channel, self.size_average)
def ssim(img1, img2, window_size = 11, size_average = True):
(_, channel, _, _) = img1.size()
window = create_window(window_size, channel)
if img1.is_cuda:
window = window.cuda(img1.get_device())
window = window.type_as(img1)
return _ssim(img1, img2, window, window_size, channel, size_average)
================================================
FILE: scheduler.py
================================================
# © 2022. Triad National Security, LLC. All rights reserved.
# This program was produced under U.S. Government contract 89233218CNA000001 for Los Alamos
# National Laboratory (LANL), which is operated by Triad National Security, LLC for the U.S.
# Department of Energy/National Nuclear Security Administration. All rights in the program are
# reserved by Triad National Security, LLC, and the U.S. Department of Energy/National Nuclear
# Security Administration. The Government is granted for itself and others acting on its behalf a
# nonexclusive, paid-up, irrevocable worldwide license in this material to reproduce, prepare
# derivative works, distribute copies to the public, perform publicly and display publicly, and to permit
# others to do so.
import torch
from bisect import bisect_right
# Scheduler adopted from the original repo
class WarmupMultiStepLR(torch.optim.lr_scheduler._LRScheduler):
def __init__(
self,
optimizer,
milestones,
gamma=0.1,
warmup_factor=1.0 / 3,
warmup_iters=5,
warmup_method="linear",
last_epoch=-1,
):
if not milestones == sorted(milestones):
raise ValueError(
"Milestones should be a list of" " increasing integers. Got {}",
milestones,
)
if warmup_method not in ("constant", "linear"):
raise ValueError(
"Only 'constant' or 'linear' warmup_method accepted"
"got {}".format(warmup_method)
)
self.milestones = milestones
self.gamma = gamma
self.warmup_factor = warmup_factor
self.warmup_iters = warmup_iters
self.warmup_method = warmup_method
super(WarmupMultiStepLR, self).__init__(optimizer, last_epoch)
def get_lr(self):
warmup_factor = 1
if self.last_epoch < self.warmup_iters:
if self.warmup_method == "constant":
warmup_factor = self.warmup_factor
elif self.warmup_method == "linear":
alpha = float(self.last_epoch) / self.warmup_iters
warmup_factor = self.warmup_factor * (1 - alpha) + alpha
return [
base_lr *
warmup_factor *
self.gamma ** bisect_right(self.milestones, self.last_epoch)
for base_lr in self.base_lrs
]
================================================
FILE: split_files/curvefault_a_train.txt
================================================
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_0.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_0.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_1.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_1.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_2.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_2.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_3.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_3.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_4.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_4.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_5.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_5.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_6.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_6.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_7.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_7.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_8.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_8.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_9.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_9.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_10.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_10.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_11.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_11.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_12.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_12.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_13.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_13.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_14.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_14.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_15.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_15.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_16.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_16.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_17.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_17.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_18.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_18.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_19.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_19.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_20.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_20.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_21.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_21.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_22.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_22.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_23.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_23.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_24.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_24.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_25.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_25.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_26.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_26.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_27.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_27.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_28.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_28.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_29.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_29.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_30.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_30.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_31.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_31.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_0.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_0.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_1.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_1.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_2.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_2.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_3.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_3.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_4.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_4.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_5.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_5.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_6.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_6.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_7.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_7.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_8.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_8.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_9.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_9.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_10.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_10.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_11.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_11.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_12.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_12.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_13.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_13.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_14.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_14.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_15.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_15.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_16.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_16.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_17.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_17.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_18.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_18.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_19.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_19.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_20.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_20.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_21.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_21.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_22.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_22.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_23.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_23.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_24.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_24.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_25.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_25.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_26.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_26.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_27.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_27.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_28.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_28.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_29.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_29.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_30.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_30.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_31.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_31.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_0.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_0.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_1.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_1.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_2.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_2.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_3.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_3.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_4.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_4.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_5.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_5.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_6.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_6.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_7.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_7.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_8.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_8.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_9.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_9.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_10.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_10.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_11.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_11.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_12.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_12.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_13.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_13.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_14.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_14.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_15.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_15.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_16.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_16.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_17.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_17.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_18.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_18.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_19.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_19.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_20.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_20.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_21.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_21.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_22.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_22.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_23.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_23.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_24.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_24.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_25.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_25.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_26.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_26.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_27.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_27.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_28.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_28.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_29.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_29.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_30.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_30.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_31.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_31.npy
================================================
FILE: split_files/curvefault_a_val.txt
================================================
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_32.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_32.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_33.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_33.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_34.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_34.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_35.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1_35.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_32.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_32.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_33.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_33.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_34.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_34.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis3_1_35.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel3_1_35.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_32.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_32.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_33.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_33.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_34.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_34.npy
/projects/piml_inversion/FWIOpenData/CurveFault_A/seis4_1_35.npy /projects/piml_inversion/FWIOpenData/CurveFault_A/vel4_1_35.npy
================================================
FILE: split_files/curvefault_b_train.txt
================================================
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_0.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_0.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_1.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_1.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_2.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_2.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_3.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_3.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_4.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_4.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_5.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_5.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_6.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_6.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_7.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_7.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_8.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_8.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_9.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_9.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_10.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_10.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_11.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_11.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_12.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_12.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_13.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_13.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_14.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_14.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_15.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_15.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_16.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_16.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_17.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_17.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_18.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_18.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_19.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_19.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_20.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_20.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_21.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_21.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_22.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_22.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_23.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_23.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_24.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_24.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_25.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_25.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_26.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_26.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_27.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_27.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_28.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_28.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_29.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_29.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_30.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_30.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_31.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_31.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_0.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_0.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_1.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_1.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_2.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_2.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_3.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_3.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_4.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_4.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_5.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_5.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_6.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_6.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_7.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_7.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_8.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_8.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_9.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_9.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_10.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_10.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_11.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_11.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_12.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_12.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_13.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_13.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_14.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_14.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_15.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_15.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_16.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_16.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_17.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_17.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_18.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_18.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_19.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_19.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_20.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_20.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_21.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_21.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_22.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_22.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_23.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_23.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_24.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_24.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_25.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_25.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_26.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_26.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_27.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_27.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_28.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_28.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_29.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_29.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_30.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_30.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_31.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_31.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_0.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_0.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_1.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_1.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_2.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_2.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_3.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_3.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_4.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_4.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_5.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_5.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_6.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_6.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_7.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_7.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_8.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_8.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_9.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_9.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_10.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_10.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_11.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_11.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_12.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_12.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_13.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_13.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_14.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_14.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_15.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_15.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_16.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_16.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_17.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_17.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_18.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_18.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_19.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_19.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_20.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_20.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_21.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_21.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_22.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_22.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_23.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_23.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_24.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_24.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_25.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_25.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_26.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_26.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_27.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_27.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_28.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_28.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_29.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_29.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_30.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_30.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_31.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_31.npy
================================================
FILE: split_files/curvefault_b_val.txt
================================================
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_32.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_32.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_33.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_33.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_34.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_34.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_35.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1_35.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_32.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_32.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_33.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_33.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_34.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_34.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis7_1_35.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel7_1_35.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_32.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_32.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_33.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_33.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_34.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_34.npy
/projects/piml_inversion/FWIOpenData/CurveFault_B/seis8_1_35.npy /projects/piml_inversion/FWIOpenData/CurveFault_B/vel8_1_35.npy
================================================
FILE: split_files/curvevel_a_train.txt
================================================
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data1.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model1.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data2.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model2.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data3.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model3.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data4.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model4.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data5.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model5.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data6.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model6.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data7.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model7.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data8.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model8.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data9.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model9.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data10.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model10.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data11.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model11.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data12.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model12.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data13.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model13.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data14.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model14.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data15.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model15.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data16.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model16.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data17.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model17.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data18.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model18.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data19.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model19.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data20.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model20.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data21.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model21.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data22.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model22.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data23.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model23.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data24.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model24.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data25.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model25.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data26.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model26.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data27.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model27.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data28.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model28.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data29.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model29.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data30.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model30.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data31.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model31.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data32.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model32.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data33.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model33.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data34.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model34.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data35.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model35.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data36.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model36.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data37.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model37.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data38.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model38.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data39.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model39.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data40.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model40.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data41.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model41.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data42.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model42.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data43.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model43.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data44.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model44.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data45.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model45.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data46.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model46.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data47.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model47.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data48.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model48.npy
================================================
FILE: split_files/curvevel_a_val.txt
================================================
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data49.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model49.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data50.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model50.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data51.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model51.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data52.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model52.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data53.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model53.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data54.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model54.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data55.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model55.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data56.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model56.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data57.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model57.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data58.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model58.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data59.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model59.npy
/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data60.npy /projects/piml_inversion/FWIOpenData/CurveVel_A/model/model60.npy
================================================
FILE: split_files/curvevel_b_train.txt
================================================
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data1.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model1.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data2.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model2.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data3.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model3.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data4.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model4.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data5.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model5.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data6.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model6.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data7.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model7.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data8.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model8.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data9.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model9.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data10.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model10.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data11.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model11.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data12.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model12.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data13.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model13.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data14.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model14.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data15.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model15.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data16.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model16.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data17.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model17.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data18.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model18.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data19.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model19.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data20.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model20.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data21.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model21.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data22.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model22.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data23.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model23.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data24.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model24.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data25.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model25.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data26.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model26.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data27.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model27.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data28.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model28.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data29.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model29.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data30.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model30.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data31.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model31.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data32.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model32.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data33.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model33.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data34.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model34.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data35.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model35.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data36.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model36.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data37.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model37.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data38.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model38.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data39.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model39.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data40.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model40.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data41.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model41.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data42.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model42.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data43.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model43.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data44.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model44.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data45.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model45.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data46.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model46.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data47.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model47.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data48.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model48.npy
================================================
FILE: split_files/curvevel_b_val.txt
================================================
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data49.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model49.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data50.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model50.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data51.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model51.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data52.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model52.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data53.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model53.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data54.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model54.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data55.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model55.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data56.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model56.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data57.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model57.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data58.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model58.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data59.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model59.npy
/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data60.npy /projects/piml_inversion/FWIOpenData/CurveVel_B/model/model60.npy
================================================
FILE: split_files/flatfault_a_train.txt
================================================
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_0.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_0.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_1.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_1.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_2.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_2.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_3.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_3.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_4.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_4.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_5.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_5.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_6.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_6.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_7.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_7.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_8.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_8.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_9.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_9.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_10.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_10.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_11.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_11.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_12.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_12.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_13.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_13.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_14.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_14.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_15.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_15.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_16.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_16.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_17.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_17.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_18.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_18.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_19.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_19.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_20.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_20.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_21.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_21.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_22.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_22.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_23.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_23.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_24.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_24.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_25.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_25.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_26.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_26.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_27.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_27.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_28.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_28.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_29.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_29.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_30.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_30.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_31.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_31.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_0.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_0.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_1.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_1.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_2.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_2.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_3.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_3.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_4.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_4.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_5.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_5.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_6.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_6.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_7.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_7.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_8.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_8.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_9.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_9.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_10.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_10.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_11.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_11.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_12.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_12.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_13.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_13.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_14.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_14.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_15.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_15.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_16.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_16.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_17.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_17.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_18.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_18.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_19.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_19.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_20.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_20.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_21.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_21.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_22.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_22.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_23.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_23.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_24.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_24.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_25.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_25.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_26.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_26.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_27.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_27.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_28.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_28.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_29.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_29.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_30.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_30.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_31.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_31.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_0.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_0.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_1.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_1.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_2.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_2.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_3.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_3.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_4.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_4.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_5.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_5.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_6.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_6.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_7.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_7.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_8.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_8.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_9.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_9.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_10.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_10.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_11.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_11.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_12.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_12.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_13.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_13.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_14.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_14.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_15.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_15.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_16.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_16.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_17.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_17.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_18.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_18.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_19.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_19.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_20.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_20.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_21.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_21.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_22.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_22.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_23.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_23.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_24.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_24.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_25.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_25.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_26.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_26.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_27.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_27.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_28.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_28.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_29.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_29.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_30.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_30.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_31.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_31.npy
================================================
FILE: split_files/flatfault_a_val.txt
================================================
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_32.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_32.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_33.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_33.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_34.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_34.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_35.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_35.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_32.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_32.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_33.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_33.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_34.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_34.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis3_1_35.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel3_1_35.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_32.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_32.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_33.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_33.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_34.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_34.npy
/projects/piml_inversion/FWIOpenData/FlatFault_A/seis4_1_35.npy /projects/piml_inversion/FWIOpenData/FlatFault_A/vel4_1_35.npy
================================================
FILE: split_files/flatfault_b_train.txt
================================================
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_0.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_0.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_1.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_1.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_2.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_2.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_3.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_3.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_4.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_4.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_5.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_5.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_6.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_6.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_7.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_7.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_8.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_8.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_9.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_9.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_10.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_10.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_11.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_11.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_12.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_12.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_13.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_13.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_14.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_14.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_15.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_15.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_16.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_16.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_17.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_17.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_18.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_18.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_19.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_19.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_20.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_20.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_21.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_21.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_22.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_22.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_23.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_23.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_24.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_24.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_25.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_25.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_26.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_26.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_27.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_27.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_28.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_28.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_29.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_29.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_30.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_30.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_31.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_31.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_0.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_0.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_1.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_1.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_2.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_2.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_3.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_3.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_4.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_4.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_5.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_5.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_6.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_6.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_7.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_7.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_8.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_8.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_9.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_9.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_10.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_10.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_11.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_11.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_12.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_12.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_13.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_13.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_14.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_14.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_15.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_15.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_16.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_16.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_17.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_17.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_18.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_18.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_19.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_19.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_20.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_20.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_21.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_21.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_22.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_22.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_23.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_23.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_24.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_24.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_25.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_25.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_26.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_26.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_27.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_27.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_28.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_28.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_29.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_29.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_30.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_30.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_31.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_31.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_0.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_0.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_1.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_1.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_2.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_2.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_3.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_3.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_4.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_4.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_5.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_5.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_6.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_6.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_7.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_7.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_8.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_8.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_9.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_9.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_10.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_10.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_11.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_11.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_12.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_12.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_13.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_13.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_14.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_14.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_15.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_15.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_16.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_16.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_17.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_17.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_18.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_18.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_19.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_19.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_20.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_20.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_21.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_21.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_22.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_22.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_23.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_23.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_24.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_24.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_25.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_25.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_26.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_26.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_27.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_27.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_28.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_28.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_29.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_29.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_30.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_30.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_31.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_31.npy
================================================
FILE: split_files/flatfault_b_val.txt
================================================
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_32.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_32.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_33.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_33.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_34.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_34.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_35.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_35.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_32.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_32.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_33.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_33.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_34.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_34.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis7_1_35.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel7_1_35.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_32.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_32.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_33.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_33.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_34.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_34.npy
/projects/piml_inversion/FWIOpenData/FlatFault_B/seis8_1_35.npy /projects/piml_inversion/FWIOpenData/FlatFault_B/vel8_1_35.npy
================================================
FILE: split_files/flatvel_a_train.txt
================================================
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data1.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model1.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data2.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model2.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data3.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model3.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data4.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model4.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data5.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model5.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data6.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model6.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data7.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model7.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data8.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model8.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data9.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model9.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data10.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model10.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data11.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model11.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data12.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model12.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data13.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model13.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data14.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model14.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data15.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model15.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data16.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model16.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data17.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model17.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data18.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model18.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data19.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model19.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data20.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model20.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data21.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model21.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data22.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model22.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data23.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model23.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data24.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model24.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data25.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model25.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data26.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model26.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data27.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model27.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data28.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model28.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data29.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model29.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data30.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model30.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data31.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model31.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data32.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model32.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data33.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model33.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data34.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model34.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data35.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model35.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data36.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model36.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data37.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model37.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data38.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model38.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data39.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model39.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data40.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model40.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data41.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model41.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data42.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model42.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data43.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model43.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data44.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model44.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data45.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model45.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data46.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model46.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data47.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model47.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data48.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model48.npy
================================================
FILE: split_files/flatvel_a_val.txt
================================================
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data49.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model49.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data50.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model50.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data51.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model51.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data52.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model52.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data53.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model53.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data54.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model54.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data55.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model55.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data56.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model56.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data57.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model57.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data58.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model58.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data59.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model59.npy
/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data60.npy /projects/piml_inversion/FWIOpenData/FlatVel_A/model/model60.npy
================================================
FILE: split_files/flatvel_b_train.txt
================================================
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data1.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model1.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data2.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model2.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data3.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model3.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data4.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model4.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data5.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model5.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data6.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model6.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data7.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model7.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data8.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model8.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data9.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model9.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data10.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model10.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data11.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model11.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data12.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model12.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data13.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model13.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data14.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model14.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data15.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model15.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data16.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model16.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data17.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model17.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data18.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model18.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data19.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model19.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data20.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model20.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data21.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model21.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data22.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model22.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data23.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model23.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data24.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model24.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data25.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model25.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data26.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model26.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data27.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model27.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data28.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model28.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data29.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model29.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data30.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model30.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data31.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model31.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data32.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model32.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data33.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model33.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data34.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model34.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data35.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model35.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data36.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model36.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data37.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model37.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data38.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model38.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data39.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model39.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data40.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model40.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data41.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model41.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data42.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model42.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data43.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model43.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data44.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model44.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data45.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model45.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data46.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model46.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data47.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model47.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data48.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model48.npy
================================================
FILE: split_files/flatvel_b_val.txt
================================================
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data49.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model49.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data50.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model50.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data51.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model51.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data52.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model52.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data53.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model53.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data54.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model54.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data55.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model55.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data56.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model56.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data57.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model57.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data58.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model58.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data59.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model59.npy
/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data60.npy /projects/piml_inversion/FWIOpenData/FlatVel_B/model/model60.npy
================================================
FILE: split_files/kaggle_tutorial_train.txt
================================================
/kaggle/input/waveform-inversion/train_samples/FlatVel_A/data/data1.npy /kaggle/input/waveform-inversion/train_samples/FlatVel_A/model/model1.npy
================================================
FILE: split_files/kaggle_tutorial_val.txt
================================================
/kaggle/input/waveform-inversion/train_samples/FlatVel_A/data/data2.npy /kaggle/input/waveform-inversion/train_samples/FlatVel_A/model/model2.npy
================================================
FILE: split_files/style_a_train.txt
================================================
/projects/piml_inversion/FWIOpenData/Style_A/data/data1.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model1.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data2.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model2.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data3.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model3.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data4.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model4.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data5.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model5.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data6.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model6.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data7.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model7.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data8.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model8.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data9.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model9.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data10.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model10.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data11.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model11.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data12.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model12.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data13.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model13.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data14.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model14.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data15.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model15.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data16.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model16.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data17.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model17.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data18.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model18.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data19.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model19.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data20.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model20.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data21.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model21.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data22.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model22.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data23.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model23.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data24.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model24.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data25.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model25.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data26.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model26.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data27.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model27.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data28.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model28.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data29.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model29.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data30.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model30.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data31.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model31.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data32.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model32.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data33.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model33.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data34.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model34.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data35.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model35.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data36.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model36.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data37.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model37.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data38.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model38.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data39.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model39.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data40.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model40.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data41.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model41.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data42.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model42.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data43.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model43.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data44.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model44.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data45.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model45.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data46.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model46.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data47.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model47.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data48.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model48.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data49.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model49.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data50.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model50.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data51.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model51.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data52.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model52.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data53.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model53.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data54.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model54.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data55.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model55.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data56.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model56.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data57.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model57.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data58.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model58.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data59.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model59.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data60.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model60.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data61.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model61.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data62.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model62.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data63.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model63.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data64.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model64.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data65.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model65.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data66.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model66.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data67.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model67.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data68.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model68.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data69.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model69.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data70.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model70.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data71.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model71.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data72.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model72.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data73.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model73.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data74.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model74.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data75.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model75.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data76.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model76.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data77.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model77.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data78.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model78.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data79.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model79.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data80.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model80.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data81.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model81.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data82.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model82.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data83.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model83.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data84.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model84.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data85.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model85.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data86.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model86.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data87.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model87.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data88.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model88.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data89.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model89.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data90.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model90.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data91.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model91.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data92.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model92.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data93.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model93.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data94.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model94.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data95.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model95.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data96.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model96.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data97.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model97.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data98.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model98.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data99.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model99.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data100.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model100.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data101.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model101.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data102.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model102.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data103.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model103.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data104.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model104.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data105.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model105.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data106.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model106.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data107.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model107.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data108.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model108.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data109.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model109.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data110.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model110.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data111.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model111.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data112.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model112.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data113.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model113.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data114.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model114.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data115.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model115.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data116.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model116.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data117.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model117.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data118.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model118.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data119.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model119.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data120.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model120.npy
================================================
FILE: split_files/style_a_val.txt
================================================
/projects/piml_inversion/FWIOpenData/Style_A/data/data121.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model121.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data122.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model122.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data123.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model123.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data124.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model124.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data125.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model125.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data126.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model126.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data127.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model127.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data128.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model128.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data129.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model129.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data130.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model130.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data131.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model131.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data132.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model132.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data133.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model133.npy
/projects/piml_inversion/FWIOpenData/Style_A/data/data134.npy /projects/piml_inversion/FWIOpenData/Style_A/model/model134.npy
================================================
FILE: split_files/style_b_train.txt
================================================
/projects/piml_inversion/FWIOpenData/Style_B/data/data1.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model1.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data2.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model2.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data3.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model3.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data4.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model4.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data5.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model5.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data6.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model6.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data7.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model7.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data8.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model8.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data9.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model9.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data10.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model10.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data11.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model11.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data12.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model12.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data13.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model13.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data14.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model14.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data15.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model15.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data16.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model16.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data17.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model17.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data18.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model18.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data19.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model19.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data20.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model20.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data21.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model21.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data22.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model22.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data23.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model23.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data24.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model24.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data25.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model25.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data26.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model26.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data27.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model27.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data28.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model28.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data29.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model29.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data30.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model30.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data31.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model31.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data32.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model32.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data33.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model33.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data34.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model34.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data35.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model35.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data36.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model36.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data37.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model37.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data38.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model38.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data39.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model39.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data40.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model40.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data41.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model41.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data42.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model42.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data43.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model43.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data44.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model44.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data45.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model45.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data46.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model46.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data47.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model47.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data48.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model48.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data49.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model49.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data50.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model50.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data51.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model51.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data52.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model52.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data53.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model53.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data54.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model54.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data55.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model55.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data56.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model56.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data57.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model57.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data58.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model58.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data59.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model59.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data60.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model60.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data61.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model61.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data62.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model62.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data63.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model63.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data64.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model64.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data65.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model65.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data66.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model66.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data67.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model67.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data68.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model68.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data69.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model69.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data70.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model70.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data71.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model71.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data72.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model72.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data73.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model73.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data74.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model74.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data75.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model75.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data76.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model76.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data77.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model77.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data78.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model78.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data79.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model79.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data80.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model80.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data81.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model81.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data82.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model82.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data83.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model83.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data84.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model84.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data85.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model85.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data86.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model86.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data87.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model87.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data88.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model88.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data89.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model89.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data90.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model90.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data91.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model91.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data92.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model92.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data93.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model93.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data94.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model94.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data95.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model95.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data96.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model96.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data97.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model97.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data98.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model98.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data99.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model99.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data100.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model100.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data101.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model101.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data102.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model102.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data103.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model103.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data104.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model104.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data105.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model105.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data106.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model106.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data107.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model107.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data108.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model108.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data109.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model109.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data110.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model110.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data111.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model111.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data112.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model112.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data113.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model113.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data114.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model114.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data115.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model115.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data116.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model116.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data117.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model117.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data118.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model118.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data119.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model119.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data120.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model120.npy
================================================
FILE: split_files/style_b_val.txt
================================================
/projects/piml_inversion/FWIOpenData/Style_B/data/data121.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model121.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data122.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model122.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data123.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model123.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data124.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model124.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data125.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model125.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data126.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model126.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data127.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model127.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data128.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model128.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data129.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model129.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data130.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model130.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data131.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model131.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data132.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model132.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data133.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model133.npy
/projects/piml_inversion/FWIOpenData/Style_B/data/data134.npy /projects/piml_inversion/FWIOpenData/Style_B/model/model134.npy
================================================
FILE: split_files/tutorial_train.txt
================================================
./fva_data1.npy ./fva_velocity1.npy
./fva_data2.npy ./fva_velocity2.npy
================================================
FILE: split_files/tutorial_val.txt
================================================
./fva_data3.npy ./fva_velocity3.npy
================================================
FILE: test.py
================================================
# © 2022. Triad National Security, LLC. All rights reserved.
# This program was produced under U.S. Government contract 89233218CNA000001 for Los Alamos
# National Laboratory (LANL), which is operated by Triad National Security, LLC for the U.S.
# Department of Energy/National Nuclear Security Administration. All rights in the program are
# reserved by Triad National Security, LLC, and the U.S. Department of Energy/National Nuclear
# Security Administration. The Government is granted for itself and others acting on its behalf a
# nonexclusive, paid-up, irrevocable worldwide license in this material to reproduce, prepare
# derivative works, distribute copies to the public, perform publicly and display publicly, and to permit
# others to do so.
import os
import sys
import time
import datetime
import json
import torch
import torch.nn as nn
from torch.utils.data import SequentialSampler
from torch.utils.data.dataloader import default_collate
import torchvision
from torchvision.transforms import Compose
import numpy as np
import utils
import network
from vis import *
from dataset import FWIDataset
import transforms as T
import pytorch_ssim
def evaluate(model, criterions, dataloader, device, k, ctx,
vis_path, vis_batch, vis_sample, missing, std):
model.eval()
label_list, label_pred_list= [], [] # store denormalized predcition & gt in numpy
label_tensor, label_pred_tensor = [], [] # store normalized prediction & gt in tensor
if missing or std:
data_list, data_noise_list = [], [] # store original data and noisy/muted data
with torch.no_grad():
batch_idx = 0
for data, label in dataloader:
data = data.type(torch.FloatTensor).to(device, non_blocking=True)
label = label.type(torch.FloatTensor).to(device, non_blocking=True)
label_np = T.tonumpy_denormalize(label, ctx['label_min'], ctx['label_max'], exp=False)
label_list.append(label_np)
label_tensor.append(label)
if missing or std:
# Add gaussian noise
data_noise = torch.clip(data + (std ** 0.5) * torch.randn(data.shape).to(device, non_blocking=True), min=-1, max=1)
# Mute some traces
mute_idx = np.random.choice(data.shape[3], size=missing, replace=False)
data_noise[:, :, :, mute_idx] = data[0, 0, 0, 0]
data_np = T.tonumpy_denormalize(data, ctx['data_min'], ctx['data_max'], k=k)
data_noise_np = T.tonumpy_denormalize(data_noise, ctx['data_min'], ctx['data_max'], k=k)
data_list.append(data_np)
data_noise_list.append(data_noise_np)
pred = model(data_noise)
else:
pred = model(data)
label_pred_np = T.tonumpy_denormalize(pred, ctx['label_min'], ctx['label_max'], exp=False)
label_pred_list.append(label_pred_np)
label_pred_tensor.append(pred)
# Visualization
if vis_path and batch_idx < vis_batch:
for i in range(vis_sample):
plot_velocity(label_pred_np[i, 0], label_np[i, 0], f'{vis_path}/V_{batch_idx}_{i}.png') #, vmin=ctx['label_min'], vmax=ctx['label_max'])
if missing or std:
for ch in [2]: # range(data.shape[1]):
plot_seismic(data_np[i, ch], data_noise_np[i, ch], f'{vis_path}/S_{batch_idx}_{i}_{ch}.png',
vmin=ctx['data_min'] * 0.01, vmax=ctx['data_max'] * 0.01)
batch_idx += 1
label, label_pred = np.concatenate(label_list), np.concatenate(label_pred_list)
label_t, pred_t = torch.cat(label_tensor), torch.cat(label_pred_tensor)
l1 = nn.L1Loss()
l2 = nn.MSELoss()
print(f'MAE: {l1(label_t, pred_t)}')
print(f'MSE: {l2(label_t, pred_t)}')
ssim_loss = pytorch_ssim.SSIM(window_size=11)
print(f'SSIM: {ssim_loss(label_t / 2 + 0.5, pred_t / 2 + 0.5)}') # (-1, 1) to (0, 1)
for name, criterion in criterions.items():
print(f' * Velocity {name}: {criterion(label, label_pred)}')
# print(f' | Velocity 2 layers {name}: {criterion(label[:1000], label_pred[:1000])}')
# print(f' | Velocity 3 layers {name}: {criterion(label[1000:2000], label_pred[1000:2000])}')
# print(f' | Velocity 4 layers {name}: {criterion(label[2000:], label_pred[2000:])}')
def main(args):
print(args)
print("torch version: ", torch.__version__)
print("torchvision version: ", torchvision.__version__)
utils.mkdir(args.output_path)
device = torch.device(args.device)
torch.backends.cudnn.benchmark = True
with open('dataset_config.json') as f:
try:
ctx = json.load(f)[args.dataset]
except KeyError:
print('Unsupported dataset.')
sys.exit()
if args.file_size is not None:
ctx['file_size'] = args.file_size
print("Loading data")
print("Loading validation data")
log_data_min = T.log_transform(ctx['data_min'], k=args.k)
log_data_max = T.log_transform(ctx['data_max'], k=args.k)
transform_valid_data = Compose([
T.LogTransform(k=args.k),
T.MinMaxNormalize(log_data_min, log_data_max),
])
transform_valid_label = Compose([
T.MinMaxNormalize(ctx['label_min'], ctx['label_max'])
])
if args.val_anno[-3:] == 'txt':
dataset_valid = FWIDataset(
args.val_anno,
sample_ratio=args.sample_temporal,
file_size=ctx['file_size'],
transform_data=transform_valid_data,
transform_label=transform_valid_label
)
else:
dataset_valid = torch.load(args.val_anno)
print("Creating data loaders")
valid_sampler = SequentialSampler(dataset_valid)
dataloader_valid = torch.utils.data.DataLoader(
dataset_valid, batch_size=args.batch_size,
sampler=valid_sampler, num_workers=args.workers,
pin_memory=True, collate_fn=default_collate)
print("Creating model")
if args.model not in network.model_dict:
print('Unsupported model.')
sys.exit()
model = network.model_dict[args.model](upsample_mode=args.up_mode,
sample_spatial=args.sample_spatial, sample_temporal=args.sample_temporal, norm=args.norm).to(device)
criterions = {
'MAE': lambda x, y: np.mean(np.abs(x - y)),
'MSE': lambda x, y: np.mean((x - y) ** 2)
}
if args.resume:
print(args.resume)
checkpoint = torch.load(args.resume, map_location='cpu')
model.load_state_dict(network.replace_legacy(checkpoint['model']))
print('Loaded model checkpoint at Epoch {} / Step {}.'.format(checkpoint['epoch'], checkpoint['step']))
if args.vis:
# Create folder to store visualization results
vis_folder = f'visualization_{args.vis_suffix}' if args.vis_suffix else 'visualization'
vis_path = os.path.join(args.output_path, vis_folder)
utils.mkdir(vis_path)
else:
vis_path = None
print("Start testing")
start_time = time.time()
evaluate(model, criterions, dataloader_valid, device, args.k, ctx,
vis_path, args.vis_batch, args.vis_sample, args.missing, args.std)
total_time = time.time() - start_time
total_time_str = str(datetime.timedelta(seconds=int(total_time)))
print('Testing time {}'.format(total_time_str))
def parse_args():
import argparse
parser = argparse.ArgumentParser(description='FCN Testing')
parser.add_argument('-d', '--device', default='cuda', help='device')
parser.add_argument('-ds', '--dataset', default='flatfault-b', type=str, help='dataset name')
parser.add_argument('-fs', '--file-size', default=None, type=int, help='number of samples in each npy file')
# Path related
parser.add_argument('-ap', '--anno-path', default='split_files', help='annotation files location')
parser.add_argument('-v', '--val-anno', default='flatfault_b_val_invnet.txt', help='name of val anno')
parser.add_argument('-o', '--output-path', default='Invnet_models', help='path to parent folder to save checkpoints')
parser.add_argument('-n', '--save-name', default='fcn_l1loss_ffb', help='folder name for this experiment')
parser.add_argument('-s', '--suffix', type=str, default=None, help='subfolder name for this run')
# Model related
parser.add_argument('-m', '--model', type=str, help='inverse model name')
parser.add_argument('-no', '--norm', default='bn', help='normalization layer type, support bn, in, ln (default: bn)')
parser.add_argument('-um', '--up-mode', default=None, help='upsampling layer mode such as "nearest", "bicubic", etc.')
parser.add_argument('-ss', '--sample-spatial', type=float, default=1.0, help='spatial sampling ratio')
parser.add_argument('-st', '--sample-temporal', type=int, default=1, help='temporal sampling ratio')
# Test related
parser.add_argument('-b', '--batch-size', default=50, type=int)
parser.add_argument('-j', '--workers', default=16, type=int, help='number of data loading workers (default: 16)')
parser.add_argument('--k', default=1, type=float, help='k in log transformation')
parser.add_argument('-r', '--resume', default=None, help='resume from checkpoint')
parser.add_argument('--vis', help='visualization option', action="store_true")
parser.add_argument('-vsu','--vis-suffix', default=None, type=str, help='visualization suffix')
parser.add_argument('-vb','--vis-batch', help='number of batch to be visualized', default=0, type=int)
parser.add_argument('-vsa', '--vis-sample', help='number of samples in a batch to be visualized', default=0, type=int)
parser.add_argument('--missing', default=0, type=int, help='number of missing traces')
parser.add_argument('--std', default=0, type=float, help='standard deviation of gaussian noise')
args = parser.parse_args()
args.output_path = os.path.join(args.output_path, args.save_name, args.suffix or '')
args.val_anno = os.path.join(args.anno_path, args.val_anno)
args.resume = os.path.join(args.output_path, args.resume)
return args
if __name__ == '__main__':
args = parse_args()
main(args)
================================================
FILE: train.py
================================================
# © 2022. Triad National Security, LLC. All rights reserved.
# This program was produced under U.S. Government contract 89233218CNA000001 for Los Alamos
# National Laboratory (LANL), which is operated by Triad National Security, LLC for the U.S.
# Department of Energy/National Nuclear Security Administration. All rights in the program are
# reserved by Triad National Security, LLC, and the U.S. Department of Energy/National Nuclear
# Security Administration. The Government is granted for itself and others acting on its behalf a
# nonexclusive, paid-up, irrevocable worldwide license in this material to reproduce, prepare
# derivative works, distribute copies to the public, perform publicly and display publicly, and to permit
# others to do so.
import os
import sys
import time
import datetime
import json
import torch
from torch import nn
from torch.utils.data import RandomSampler, DataLoader
from torch.utils.data.dataloader import default_collate
from torch.utils.data.distributed import DistributedSampler
from torch.nn.parallel import DistributedDataParallel
from torch.utils.tensorboard import SummaryWriter
import torchvision
from torchvision.transforms import Compose
import utils
import network
from dataset import FWIDataset
from scheduler import WarmupMultiStepLR
import transforms as T
step = 0
def train_one_epoch(model, criterion, optimizer, lr_scheduler,
dataloader, device, epoch, print_freq, writer):
global step
model.train()
# Logger setup
metric_logger = utils.MetricLogger(delimiter=' ')
metric_logger.add_meter('lr', utils.SmoothedValue(window_size=1, fmt='{value}'))
metric_logger.add_meter('samples/s', utils.SmoothedValue(window_size=10, fmt='{value:.3f}'))
header = 'Epoch: [{}]'.format(epoch)
for data, label in metric_logger.log_every(dataloader, print_freq, header):
start_time = time.time()
optimizer.zero_grad()
data, label = data.to(device), label.to(device)
output = model(data)
loss, loss_g1v, loss_g2v = criterion(output, label)
loss.backward()
optimizer.step()
loss_val = loss.item()
loss_g1v_val = loss_g1v.item()
loss_g2v_val = loss_g2v.item()
batch_size = data.shape[0]
metric_logger.update(loss=loss_val, loss_g1v=loss_g1v_val,
loss_g2v=loss_g2v_val, lr=optimizer.param_groups[0]['lr'])
metric_logger.meters['samples/s'].update(batch_size / (time.time() - start_time))
if writer:
writer.add_scalar('loss', loss_val, step)
writer.add_scalar('loss_g1v', loss_g1v_val, step)
writer.add_scalar('loss_g2v', loss_g2v_val, step)
step += 1
lr_scheduler.step()
def evaluate(model, criterion, dataloader, device, writer):
model.eval()
metric_logger = utils.MetricLogger(delimiter=' ')
header = 'Test:'
with torch.no_grad():
for data, label in metric_logger.log_every(dataloader, 20, header):
data = data.to(device, non_blocking=True)
label = label.to(device, non_blocking=True)
output = model(data)
loss, loss_g1v, loss_g2v = criterion(output, label)
metric_logger.update(loss=loss.item(),
loss_g1v=loss_g1v.item(),
loss_g2v=loss_g2v.item())
# Gather the stats from all processes
metric_logger.synchronize_between_processes()
print(' * Loss {loss.global_avg:.8f}\n'.format(loss=metric_logger.loss))
if writer:
writer.add_scalar('loss', metric_logger.loss.global_avg, step)
writer.add_scalar('loss_g1v', metric_logger.loss_g1v.global_avg, step)
writer.add_scalar('loss_g2v', metric_logger.loss_g2v.global_avg, step)
return metric_logger.loss.global_avg
def main(args):
global step
print(args)
print('torch version: ', torch.__version__)
print('torchvision version: ', torchvision.__version__)
utils.mkdir(args.output_path) # create folder to store checkpoints
utils.init_distributed_mode(args) # distributed mode initialization
# Set up tensorboard summary writer
train_writer, val_writer = None, None
if args.tensorboard:
utils.mkdir(args.log_path) # create folder to store tensorboard logs
if not args.distributed or (args.rank == 0) and (args.local_rank == 0):
train_writer = SummaryWriter(os.path.join(args.output_path, 'logs', 'train'))
val_writer = SummaryWriter(os.path.join(args.output_path, 'logs', 'val'))
device = torch.device(args.device)
torch.backends.cudnn.benchmark = True
with open('dataset_config.json') as f:
try:
ctx = json.load(f)[args.dataset]
except KeyError:
print('Unsupported dataset.')
sys.exit()
if args.file_size is not None:
ctx['file_size'] = args.file_size
# Create dataset and dataloader
print('Loading data')
print('Loading training data')
# Normalize data and label to [-1, 1]
transform_data = Compose([
T.LogTransform(k=args.k),
T.MinMaxNormalize(T.log_transform(ctx['data_min'], k=args.k), T.log_transform(ctx['data_max'], k=args.k))
])
transform_label = Compose([
T.MinMaxNormalize(ctx['label_min'], ctx['label_max'])
])
if args.train_anno[-3:] == 'txt':
dataset_train = FWIDataset(
args.train_anno,
preload=True,
sample_ratio=args.sample_temporal,
file_size=ctx['file_size'],
transform_data=transform_data,
transform_label=transform_label
)
else:
dataset_train = torch.load(args.train_anno)
print('Loading validation data')
if args.val_anno[-3:] == 'txt':
dataset_valid = FWIDataset(
args.val_anno,
preload=True,
sample_ratio=args.sample_temporal,
file_size=ctx['file_size'],
transform_data=transform_data,
transform_label=transform_label
)
else:
dataset_valid = torch.load(args.val_anno)
print('Creating data loaders')
if args.distributed:
train_sampler = DistributedSampler(dataset_train, shuffle=True)
valid_sampler = DistributedSampler(dataset_valid, shuffle=True)
else:
train_sampler = RandomSampler(dataset_train)
valid_sampler = RandomSampler(dataset_valid)
dataloader_train = DataLoader(
dataset_train, batch_size=args.batch_size,
sampler=train_sampler, num_workers=args.workers,
pin_memory=True, drop_last=True, collate_fn=default_collate)
dataloader_valid = DataLoader(
dataset_valid, batch_size=args.batch_size,
sampler=valid_sampler, num_workers=args.workers,
pin_memory=True, collate_fn=default_collate)
print('Creating model')
if args.model not in network.model_dict:
print('Unsupported model.')
sys.exit()
model = network.model_dict[args.model](upsample_mode=args.up_mode,
sample_spatial=args.sample_spatial, sample_temporal=args.sample_temporal).to(device)
if args.distributed and args.sync_bn:
model = torch.nn.SyncBatchNorm.convert_sync_batchnorm(model)
# Define loss function
l1loss = nn.L1Loss()
l2loss = nn.MSELoss()
def criterion(pred, gt):
loss_g1v = l1loss(pred, gt)
loss_g2v = l2loss(pred, gt)
loss = args.lambda_g1v * loss_g1v + args.lambda_g2v * loss_g2v
return loss, loss_g1v, loss_g2v
# Scale lr according to effective batch size
lr = args.lr * args.world_size
optimizer = torch.optim.AdamW(model.parameters(), lr=lr, betas=(0.9, 0.999), weight_decay=args.weight_decay)
# Convert scheduler to be per iteration instead of per epoch
warmup_iters = args.lr_warmup_epochs * len(dataloader_train)
lr_milestones = [len(dataloader_train) * m for m in args.lr_milestones]
lr_scheduler = WarmupMultiStepLR(
optimizer, milestones=lr_milestones, gamma=args.lr_gamma,
warmup_iters=warmup_iters, warmup_factor=1e-5)
model_without_ddp = model
if args.distributed:
model = DistributedDataParallel(model, device_ids=[args.local_rank])
model_without_ddp = model.module
if args.resume:
checkpoint = torch.load(args.resume, map_location='cpu')
model_without_ddp.load_state_dict(network.replace_legacy(checkpoint['model']))
optimizer.load_state_dict(checkpoint['optimizer'])
lr_scheduler.load_state_dict(checkpoint['lr_scheduler'])
args.start_epoch = checkpoint['epoch'] + 1
step = checkpoint['step']
lr_scheduler.milestones=lr_milestones
print('Start training')
start_time = time.time()
best_loss = 10
chp=1
for epoch in range(args.start_epoch, args.epochs):
if args.distributed:
train_sampler.set_epoch(epoch)
train_one_epoch(model, criterion, optimizer, lr_scheduler, dataloader_train,
device, epoch, args.print_freq, train_writer)
loss = evaluate(model, criterion, dataloader_valid, device, val_writer)
checkpoint = {
'model': model_without_ddp.state_dict(),
'optimizer': optimizer.state_dict(),
'lr_scheduler': lr_scheduler.state_dict(),
'epoch': epoch,
'step': step,
'args': args}
# Save checkpoint per epoch
if loss < best_loss:
utils.save_on_master(
checkpoint,
os.path.join(args.output_path, 'checkpoint.pth'))
print('saving checkpoint at epoch: ', epoch)
chp = epoch
best_loss = loss
# Save checkpoint every epoch block
print('current best loss: ', best_loss)
print('current best epoch: ', chp)
if args.output_path and (epoch + 1) % args.epoch_block == 0:
utils.save_on_master(
checkpoint,
os.path.join(args.output_path, 'model_{}.pth'.format(epoch + 1)))
total_time = time.time() - start_time
total_time_str = str(datetime.timedelta(seconds=int(total_time)))
print('Training time {}'.format(total_time_str))
def parse_args():
import argparse
parser = argparse.ArgumentParser(description='FCN Training')
parser.add_argument('-d', '--device', default='cuda', help='device')
parser.add_argument('-ds', '--dataset', default='flatfault-b', type=str, help='dataset name')
parser.add_argument('-fs', '--file-size', default=None, type=int, help='number of samples in each npy file')
# Path related
parser.add_argument('-ap', '--anno-path', default='split_files', help='annotation files location')
parser.add_argument('-t', '--train-anno', default='flatfault_b_train_invnet.txt', help='name of train anno')
parser.add_argument('-v', '--val-anno', default='flatfault_b_val_invnet.txt', help='name of val anno')
parser.add_argument('-o', '--output-path', default='Invnet_models', help='path to parent folder to save checkpoints')
parser.add_argument('-l', '--log-path', default='Invnet_models', help='path to parent folder to save logs')
parser.add_argument('-n', '--save-name', default='fcn_l1loss_ffb', help='folder name for this experiment')
parser.add_argument('-s', '--suffix', type=str, default=None, help='subfolder name for this run')
# Model related
parser.add_argument('-m', '--model', type=str, help='inverse model name')
parser.add_argument('-um', '--up-mode', default=None, help='upsampling layer mode such as "nearest", "bicubic", etc.')
parser.add_argument('-ss', '--sample-spatial', type=float, default=1.0, help='spatial sampling ratio')
parser.add_argument('-st', '--sample-temporal', type=int, default=1, help='temporal sampling ratio')
# Training related
parser.add_argument('-b', '--batch-size', default=256, type=int)
parser.add_argument('--lr', default=0.0001, type=float, help='initial learning rate')
parser.add_argument('-lm', '--lr-milestones', nargs='+', default=[], type=int, help='decrease lr on milestones')
parser.add_argument('-
gitextract_szcesyxt/ ├── LICENSE ├── README.md ├── dataset.py ├── dataset_config.json ├── gan_train.py ├── network.py ├── pytorch_ssim.py ├── rainbow256.npy ├── scheduler.py ├── split_files/ │ ├── curvefault_a_train.txt │ ├── curvefault_a_val.txt │ ├── curvefault_b_train.txt │ ├── curvefault_b_val.txt │ ├── curvevel_a_train.txt │ ├── curvevel_a_val.txt │ ├── curvevel_b_train.txt │ ├── curvevel_b_val.txt │ ├── flatfault_a_train.txt │ ├── flatfault_a_val.txt │ ├── flatfault_b_train.txt │ ├── flatfault_b_val.txt │ ├── flatvel_a_train.txt │ ├── flatvel_a_val.txt │ ├── flatvel_b_train.txt │ ├── flatvel_b_val.txt │ ├── kaggle_tutorial_train.txt │ ├── kaggle_tutorial_val.txt │ ├── style_a_train.txt │ ├── style_a_val.txt │ ├── style_b_train.txt │ ├── style_b_val.txt │ ├── tutorial_train.txt │ └── tutorial_val.txt ├── test.py ├── train.py ├── transforms.py ├── utils.py └── vis.py
SYMBOL INDEX (176 symbols across 10 files)
FILE: dataset.py
class FWIDataset (line 25) | class FWIDataset(Dataset):
method __init__ (line 37) | def __init__(self, anno, preload=True, sample_ratio=1, file_size=500,
method load_every (line 57) | def load_every(self, batch):
method __getitem__ (line 71) | def __getitem__(self, idx):
method __len__ (line 86) | def __len__(self):
FILE: gan_train.py
function train_one_epoch (line 45) | def train_one_epoch(model, model_d, criterion_g, criterion_d, optimizer_...
function evaluate (line 98) | def evaluate(model, criterion, dataloader, device, writer):
function main (line 121) | def main(args):
function parse_args (line 301) | def parse_args():
FILE: network.py
function replace_legacy (line 28) | def replace_legacy(old_dict):
class Conv2DwithBN (line 38) | class Conv2DwithBN(nn.Module):
method __init__ (line 39) | def __init__(self, in_fea, out_fea,
method forward (line 51) | def forward(self, x):
class ResizeConv2DwithBN (line 54) | class ResizeConv2DwithBN(nn.Module):
method __init__ (line 55) | def __init__(self, in_fea, out_fea, scale_factor=2, mode='nearest'):
method forward (line 63) | def forward(self, x):
class Conv2DwithBN_Tanh (line 66) | class Conv2DwithBN_Tanh(nn.Module):
method __init__ (line 67) | def __init__(self, in_fea, out_fea, kernel_size=3, stride=1, padding=1):
method forward (line 74) | def forward(self, x):
class ConvBlock (line 77) | class ConvBlock(nn.Module):
method __init__ (line 78) | def __init__(self, in_fea, out_fea, kernel_size=3, stride=1, padding=1...
method forward (line 88) | def forward(self, x):
class ConvBlock_Tanh (line 92) | class ConvBlock_Tanh(nn.Module):
method __init__ (line 93) | def __init__(self, in_fea, out_fea, kernel_size=3, stride=1, padding=1...
method forward (line 101) | def forward(self, x):
class DeconvBlock (line 105) | class DeconvBlock(nn.Module):
method __init__ (line 106) | def __init__(self, in_fea, out_fea, kernel_size=2, stride=2, padding=0...
method forward (line 114) | def forward(self, x):
class ResizeBlock (line 118) | class ResizeBlock(nn.Module):
method __init__ (line 119) | def __init__(self, in_fea, out_fea, scale_factor=2, mode='nearest', no...
method forward (line 128) | def forward(self, x):
class InversionNet (line 135) | class InversionNet(nn.Module):
method __init__ (line 136) | def __init__(self, dim1=32, dim2=64, dim3=128, dim4=256, dim5=512, sam...
method forward (line 165) | def forward(self,x):
class FCN4_Deep_Resize_2 (line 197) | class FCN4_Deep_Resize_2(nn.Module):
method __init__ (line 198) | def __init__(self, dim1=32, dim2=64, dim3=128, dim4=256, dim5=512, rat...
method forward (line 227) | def forward(self,x):
class Discriminator (line 260) | class Discriminator(nn.Module):
method __init__ (line 261) | def __init__(self, dim1=32, dim2=64, dim3=128, dim4=256, **kwargs):
method forward (line 273) | def forward(self, x):
class Conv_HPGNN (line 287) | class Conv_HPGNN(nn.Module):
method __init__ (line 288) | def __init__(self, in_fea, out_fea, kernel_size=None, stride=None, pad...
method forward (line 298) | def forward(self, x):
class Deconv_HPGNN (line 302) | class Deconv_HPGNN(nn.Module):
method __init__ (line 303) | def __init__(self, in_fea, out_fea, kernel_size, **kwargs):
method forward (line 312) | def forward(self, x):
FILE: pytorch_ssim.py
function gaussian (line 9) | def gaussian(window_size, sigma):
function create_window (line 13) | def create_window(window_size, channel):
function _ssim (line 19) | def _ssim(img1, img2, window, window_size, channel, size_average = True):
class SSIM (line 41) | class SSIM(torch.nn.Module):
method __init__ (line 42) | def __init__(self, window_size = 11, size_average = True):
method forward (line 49) | def forward(self, img1, img2):
function ssim (line 67) | def ssim(img1, img2, window_size = 11, size_average = True):
FILE: scheduler.py
class WarmupMultiStepLR (line 23) | class WarmupMultiStepLR(torch.optim.lr_scheduler._LRScheduler):
method __init__ (line 24) | def __init__(
method get_lr (line 52) | def get_lr(self):
FILE: test.py
function evaluate (line 41) | def evaluate(model, criterions, dataloader, device, k, ctx,
function main (line 107) | def main(args):
function parse_args (line 193) | def parse_args():
FILE: train.py
function train_one_epoch (line 43) | def train_one_epoch(model, criterion, optimizer, lr_scheduler,
function evaluate (line 78) | def evaluate(model, criterion, dataloader, device, writer):
function main (line 102) | def main(args):
function parse_args (line 273) | def parse_args():
FILE: transforms.py
function crop (line 24) | def crop(vid, i, j, h, w):
function center_crop (line 28) | def center_crop(vid, output_size):
function hflip (line 37) | def hflip(vid):
function resize (line 44) | def resize(vid, size, interpolation='bilinear'):
function random_resize (line 54) | def random_resize(vid, size, random_factor, interpolation='bilinear'):
function pad (line 67) | def pad(vid, padding, fill=0, padding_mode="constant"):
function to_normalized_float_tensor (line 73) | def to_normalized_float_tensor(vid):
function normalize (line 77) | def normalize(vid, mean, std):
function minmax_normalize (line 83) | def minmax_normalize(vid, vmin, vmax, scale=2):
function minmax_denormalize (line 88) | def minmax_denormalize(vid, vmin, vmax, scale=2):
function add_noise (line 93) | def add_noise(data, snr):
function log_transform (line 102) | def log_transform(data, k=1, c=0):
function log_transform_tensor (line 105) | def log_transform_tensor(data, k=1, c=0):
function exp_transform (line 108) | def exp_transform(data, k=1, c=0):
function tonumpy_denormalize (line 111) | def tonumpy_denormalize(vid, vmin, vmax, exp=True, k=1, c=0, scale=2):
class RandomCrop (line 120) | class RandomCrop(object):
method __init__ (line 121) | def __init__(self, size):
method get_params (line 125) | def get_params(vid, output_size):
method __call__ (line 136) | def __call__(self, vid):
class CenterCrop (line 141) | class CenterCrop(object):
method __init__ (line 142) | def __init__(self, size):
method __call__ (line 145) | def __call__(self, vid):
class Resize (line 149) | class Resize(object):
method __init__ (line 150) | def __init__(self, size):
method __call__ (line 153) | def __call__(self, vid):
class RandomResize (line 156) | class RandomResize(object):
method __init__ (line 157) | def __init__(self, size, random_factor=1.25):
method __call__ (line 161) | def __call__(self, vid):
class ToFloatTensorInZeroOne (line 164) | class ToFloatTensorInZeroOne(object):
method __call__ (line 165) | def __call__(self, vid):
class Normalize (line 169) | class Normalize(object):
method __init__ (line 170) | def __init__(self, mean, std):
method __call__ (line 174) | def __call__(self, vid):
class MinMaxNormalize (line 177) | class MinMaxNormalize(object):
method __init__ (line 178) | def __init__(self, datamin, datamax, scale=2):
method __call__ (line 183) | def __call__(self, vid):
class RandomHorizontalFlip (line 186) | class RandomHorizontalFlip(object):
method __init__ (line 187) | def __init__(self, p=0.5):
method __call__ (line 190) | def __call__(self, vid):
class Pad (line 195) | class Pad(object):
method __init__ (line 196) | def __init__(self, padding, fill=0):
method __call__ (line 200) | def __call__(self, vid):
class TemporalDownsample (line 203) | class TemporalDownsample(object):
method __init__ (line 204) | def __init__(self, rate=1):
method __call__ (line 207) | def __call__(self, vid):
class AddNoise (line 210) | class AddNoise(object):
method __init__ (line 211) | def __init__(self, snr=10):
method __call__ (line 214) | def __call__(self, vid):
class PCD (line 217) | class PCD(object):
method __init__ (line 218) | def __init__(self, n_comp=8):
method __call__ (line 221) | def __call__(self, data):
class StackPCD (line 231) | class StackPCD(object):
method __init__ (line 232) | def __init__(self, n_comp=(32, 8)):
method __call__ (line 237) | def __call__(self, data):
class LogTransform (line 257) | class LogTransform(object):
method __init__ (line 258) | def __init__(self, k=1, c=0):
method __call__ (line 262) | def __call__(self, data):
class ToTensor (line 265) | class ToTensor(object):
method __call__ (line 269) | def __call__(self, sample):
FILE: utils.py
class SmoothedValue (line 33) | class SmoothedValue(object):
method __init__ (line 38) | def __init__(self, window_size=20, fmt=None):
method update (line 46) | def update(self, value, n=1):
method synchronize_between_processes (line 51) | def synchronize_between_processes(self):
method median (line 65) | def median(self):
method avg (line 70) | def avg(self):
method global_avg (line 75) | def global_avg(self):
method max (line 79) | def max(self):
method value (line 83) | def value(self):
method __str__ (line 86) | def __str__(self):
class MetricLogger (line 95) | class MetricLogger(object):
method __init__ (line 96) | def __init__(self, delimiter="\t"):
method update (line 100) | def update(self, **kwargs):
method __getattr__ (line 107) | def __getattr__(self, attr):
method __str__ (line 115) | def __str__(self):
method synchronize_between_processes (line 123) | def synchronize_between_processes(self):
method add_meter (line 127) | def add_meter(self, name, meter):
method log_every (line 130) | def log_every(self, iterable, print_freq, header=None):
class ContentLoss (line 191) | class ContentLoss(nn.Module):
method __init__ (line 192) | def __init__(self, args):
method forward (line 201) | def forward(self, model, input, target):
class IdenticalLoss (line 211) | class IdenticalLoss(nn.Module):
method __init__ (line 212) | def __init__(self, args):
method forward (line 221) | def forward(self, model_s2v, model_v2s, input):
class NMSELoss (line 231) | class NMSELoss(nn.Module):
method __init__ (line 232) | def __init__(self):
method forward (line 235) | def forward(self, pred, gt):
class CycleLoss (line 239) | class CycleLoss(nn.Module):
method __init__ (line 240) | def __init__(self, args):
method forward (line 249) | def forward(self, data, label, pred_s=None, pred_v=None, recon_s=None,...
class _CycleLoss (line 272) | class _CycleLoss(nn.Module):
method __init__ (line 273) | def __init__(self, args):
method forward (line 282) | def forward(self, data, label, pred_s=None, pred_v=None, recon_s=None,...
function accuracy (line 303) | def accuracy(output, target, topk=(1,)):
function mkdir (line 320) | def mkdir(path):
function setup_for_distributed (line 328) | def setup_for_distributed(is_master):
function is_dist_avail_and_initialized (line 343) | def is_dist_avail_and_initialized():
function get_world_size (line 351) | def get_world_size():
function get_rank (line 357) | def get_rank():
function is_main_process (line 363) | def is_main_process():
function save_on_master (line 367) | def save_on_master(*args, **kwargs):
function init_distributed_mode (line 372) | def init_distributed_mode(args):
class Wasserstein_GP (line 398) | class Wasserstein_GP(nn.Module):
method __init__ (line 399) | def __init__(self, device, lambda_gp):
method forward (line 404) | def forward(self, real, fake, model):
method compute_gradient_penalty (line 411) | def compute_gradient_penalty(self, model, real_samples, fake_samples):
class VGGPerceptualLoss (line 428) | class VGGPerceptualLoss(nn.Module):
method __init__ (line 429) | def __init__(self, resize=True):
method forward (line 447) | def forward(self, input, target, rescale=True, feature_layers=[1]):
function cal_psnr (line 470) | def cal_psnr(gt, data, max_value):
FILE: vis.py
function plot_velocity (line 12) | def plot_velocity(output, target, path, vmin=None, vmax=None):
function plot_single_velocity (line 38) | def plot_single_velocity(label, path):
function plot_seismic (line 71) | def plot_seismic(output, target, path, vmin=-1e-5, vmax=1e-5):
function plot_single_seismic (line 94) | def plot_single_seismic(data, path):
Condensed preview — 38 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (234K chars).
[
{
"path": "LICENSE",
"chars": 1538,
"preview": "BSD 3-Clause License\n\nCopyright (c) 2022, Los Alamos National Laboratory\nAll rights reserved.\n\nRedistribution and use in"
},
{
"path": "README.md",
"chars": 7267,
"preview": "This program is open source under the BSD-3 License.\nRedistribution and use in source and binary forms, with or without "
},
{
"path": "dataset.py",
"chars": 3920,
"preview": "# © 2022. Triad National Security, LLC. All rights reserved.\n\n# This program was produced under U.S. Government contract"
},
{
"path": "dataset_config.json",
"chars": 3843,
"preview": "{\n \"flatvel-a\": {\n \"data_min\": -26.95,\n \"data_max\": 52.77,\n \"label_min\": 1500,\n \"label_ma"
},
{
"path": "gan_train.py",
"chars": 16662,
"preview": "# © 2022. Triad National Security, LLC. All rights reserved.\n\n# This program was produced under U.S. Government contract"
},
{
"path": "network.py",
"chars": 14861,
"preview": "# © 2022. Triad National Security, LLC. All rights reserved.\n\n# This program was produced under U.S. Government contract"
},
{
"path": "pytorch_ssim.py",
"chars": 2722,
"preview": "# From https://github.com/Po-Hsun-Su/pytorch-ssim/blob/master/pytorch_ssim/__init__.py\n\nimport torch\nimport torch.nn.fun"
},
{
"path": "scheduler.py",
"chars": 2380,
"preview": "# © 2022. Triad National Security, LLC. All rights reserved.\n\n# This program was produced under U.S. Government contract"
},
{
"path": "split_files/curvefault_a_train.txt",
"chars": 12324,
"preview": "/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_0.npy\t/projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_1"
},
{
"path": "split_files/curvefault_a_val.txt",
"chars": 1548,
"preview": "/projects/piml_inversion/FWIOpenData/CurveFault_A/seis2_1_32.npy\t/projects/piml_inversion/FWIOpenData/CurveFault_A/vel2_"
},
{
"path": "split_files/curvefault_b_train.txt",
"chars": 12324,
"preview": "/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_0.npy\t/projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_1"
},
{
"path": "split_files/curvefault_b_val.txt",
"chars": 1548,
"preview": "/projects/piml_inversion/FWIOpenData/CurveFault_B/seis6_1_32.npy\t/projects/piml_inversion/FWIOpenData/CurveFault_B/vel6_"
},
{
"path": "split_files/curvevel_a_train.txt",
"chars": 6222,
"preview": "/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data1.npy\t/projects/piml_inversion/FWIOpenData/CurveVel_A/model/mod"
},
{
"path": "split_files/curvevel_a_val.txt",
"chars": 1560,
"preview": "/projects/piml_inversion/FWIOpenData/CurveVel_A/data/data49.npy\t/projects/piml_inversion/FWIOpenData/CurveVel_A/model/mo"
},
{
"path": "split_files/curvevel_b_train.txt",
"chars": 6222,
"preview": "/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data1.npy\t/projects/piml_inversion/FWIOpenData/CurveVel_B/model/mod"
},
{
"path": "split_files/curvevel_b_val.txt",
"chars": 1560,
"preview": "/projects/piml_inversion/FWIOpenData/CurveVel_B/data/data49.npy\t/projects/piml_inversion/FWIOpenData/CurveVel_B/model/mo"
},
{
"path": "split_files/flatfault_a_train.txt",
"chars": 12132,
"preview": "/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_0.npy\t/projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_0"
},
{
"path": "split_files/flatfault_a_val.txt",
"chars": 1524,
"preview": "/projects/piml_inversion/FWIOpenData/FlatFault_A/seis2_1_32.npy\t/projects/piml_inversion/FWIOpenData/FlatFault_A/vel2_1_"
},
{
"path": "split_files/flatfault_b_train.txt",
"chars": 12132,
"preview": "/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_0.npy\t/projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_0"
},
{
"path": "split_files/flatfault_b_val.txt",
"chars": 1524,
"preview": "/projects/piml_inversion/FWIOpenData/FlatFault_B/seis6_1_32.npy\t/projects/piml_inversion/FWIOpenData/FlatFault_B/vel6_1_"
},
{
"path": "split_files/flatvel_a_train.txt",
"chars": 6126,
"preview": "/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data1.npy\t/projects/piml_inversion/FWIOpenData/FlatVel_A/model/model"
},
{
"path": "split_files/flatvel_a_val.txt",
"chars": 1536,
"preview": "/projects/piml_inversion/FWIOpenData/FlatVel_A/data/data49.npy\t/projects/piml_inversion/FWIOpenData/FlatVel_A/model/mode"
},
{
"path": "split_files/flatvel_b_train.txt",
"chars": 6126,
"preview": "/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data1.npy\t/projects/piml_inversion/FWIOpenData/FlatVel_B/model/model"
},
{
"path": "split_files/flatvel_b_val.txt",
"chars": 1536,
"preview": "/projects/piml_inversion/FWIOpenData/FlatVel_B/data/data49.npy\t/projects/piml_inversion/FWIOpenData/FlatVel_B/model/mode"
},
{
"path": "split_files/kaggle_tutorial_train.txt",
"chars": 146,
"preview": "/kaggle/input/waveform-inversion/train_samples/FlatVel_A/data/data1.npy\t/kaggle/input/waveform-inversion/train_samples/F"
},
{
"path": "split_files/kaggle_tutorial_val.txt",
"chars": 146,
"preview": "/kaggle/input/waveform-inversion/train_samples/FlatVel_A/data/data2.npy\t/kaggle/input/waveform-inversion/train_samples/F"
},
{
"path": "split_files/style_a_train.txt",
"chars": 14904,
"preview": "/projects/piml_inversion/FWIOpenData/Style_A/data/data1.npy\t/projects/piml_inversion/FWIOpenData/Style_A/model/model1.np"
},
{
"path": "split_files/style_a_val.txt",
"chars": 1764,
"preview": "/projects/piml_inversion/FWIOpenData/Style_A/data/data121.npy\t/projects/piml_inversion/FWIOpenData/Style_A/model/model12"
},
{
"path": "split_files/style_b_train.txt",
"chars": 14904,
"preview": "/projects/piml_inversion/FWIOpenData/Style_B/data/data1.npy\t/projects/piml_inversion/FWIOpenData/Style_B/model/model1.np"
},
{
"path": "split_files/style_b_val.txt",
"chars": 1764,
"preview": "/projects/piml_inversion/FWIOpenData/Style_B/data/data121.npy\t/projects/piml_inversion/FWIOpenData/Style_B/model/model12"
},
{
"path": "split_files/tutorial_train.txt",
"chars": 72,
"preview": "./fva_data1.npy\t./fva_velocity1.npy\n./fva_data2.npy\t./fva_velocity2.npy\n"
},
{
"path": "split_files/tutorial_val.txt",
"chars": 36,
"preview": "./fva_data3.npy\t./fva_velocity3.npy\n"
},
{
"path": "test.py",
"chars": 10383,
"preview": "# © 2022. Triad National Security, LLC. All rights reserved.\n\n# This program was produced under U.S. Government contract"
},
{
"path": "train.py",
"chars": 14469,
"preview": "# © 2022. Triad National Security, LLC. All rights reserved.\n\n# This program was produced under U.S. Government contract"
},
{
"path": "transforms.py",
"chars": 8236,
"preview": "# © 2022. Triad National Security, LLC. All rights reserved.\n\n# This program was produced under U.S. Government contract"
},
{
"path": "utils.py",
"chars": 17006,
"preview": "# © 2022. Triad National Security, LLC. All rights reserved.\n\n# This program was produced under U.S. Government contract"
},
{
"path": "vis.py",
"chars": 4324,
"preview": "import os\nimport torch\nimport matplotlib\nmatplotlib.use('Agg')\nimport matplotlib.pyplot as plt\nimport numpy as np\nfrom m"
}
]
// ... and 1 more files (download for full content)
About this extraction
This page contains the full source code of the lanl/OpenFWI GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 38 files (222.0 KB), approximately 70.2k tokens, and a symbol index with 176 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.