zhu-shengwei / deep-learning-applied-to-seismic-data Goto Github PK
View Code? Open in Web Editor NEWThis project forked from mikhailiuk/deep-learning-applied-to-seismic-data
License: MIT License
This project forked from mikhailiuk/deep-learning-applied-to-seismic-data
License: MIT License
If using the project, please cite as follows: Mikhailiuk A. and Faul A. 2018. "Deep Learning Applied To Seismic Signal Interpolation". EAGE2018. ============================================================================================ ============================================================================================ Author: Aliaksei Mikhailiuk Date: 20.07.2017 Contains: Deep Learning and Parallelisation applied to seismic data. ============================================================================================ ============================================================================================ The enclosed program contains an implementaitoin of a neural network in C++ and OpenMP. ============================================================================================ The head folder contains: config: folder with a configuration file input: folder with input files (data) obj: folder for object files (generated by compiler) output: folder for an output of the algorithm (contains exmaple output - running the algorithm with the configuration specified in config.cfg. There are two folders, one ending with fu and another with es. Fu - fully trained (not in the minimum of the validation error (2000 epochs)), es - early stop (when the network reaches the minima)) scripts: supplementary scripts for postprocessing of the results src: folder with the source code of the algorithm documentation: folder with documentation produced with doxygen containing code description. to view the documentation go to the ./documentation/html/ and open index.html Makefile: makefile readme.txt: read me file ============================================================================================ Note: every folder contains associated readme.txt file explaining the contents, or has a well documented code. ============================================================================================ ============================================================================================ ============================================================================================ Compilation: ============================================================================================ make ============================================================================================ ============================================================================================ Run (generates a folder with a unique id in the output folder): ============================================================================================ make run ============================================================================================ Note: to change the number of threads, go to Makefile and change OMP_NUM_THREADS (tested range is 1 to 4) ============================================================================================ ============================================================================================ ============================================================================================ Visualise results in the output folder (requires matlab): ============================================================================================ make plot ============================================================================================ ============================================================================================ Required libraries ============================================================================================ libconfig.h++ omp.h ============================================================================================ ============================================================================================ Implementation details: ============================================================================================ The implemented algorithms include: simple autoencoder with one hidden layer, two regularised autoencoders i.e. denoizing and contractive, and a deep autoencoder with a variable number and size of the hidden layers. The final implementation allows the user to specify the model parameters in a configuration file. A detailed output is produced in the output folder. The key results written in the .dat files can be visualised using a MatLab script. Furthermore model parameters are saved along with the output results. Thus a new model can be initialised from the saved parameters and training can be continued. Saved features can also be reused for other tasks - e.g. classification. In order to automate the process of results collection a number of bash scripts was written. T is documented using doxygen and a detailed description of files and functions is placed in index.html in the html folder. Detailed documentation on usage and scripts is given in the readme file in the head folder. OpenMP: The same serial code optimisations were applied to all parallel approach. These included: compiler flags, loop unrolling, loop blocking, single precision calculations, elimination of redundant variables, hoisting out computations from for loops and inline functions. Mainly optimisations were aimed for reducing expensive memory access operation and minimising the number of cache misses. Different workload distributions were tried and the best preformance is achieved when guided is used on all loops. One of the technical points taken into account is that when C++ classes are used the memory must be set to shared by default. This brings complications to loop counters updates. One more point is that when the functions are called from the parallel region all variable declared in these functions end up private. Thus points of explicit synchronisation are required in order to ensure memory consistency.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.