Skip to main content

NNmeta based on Netpack

Project description

NNmeta

NNmeta is created in order to use NNPackage.

Installation

Install with pip [PyPi]:

pip3 install nnmeta

Install from source

Clone the repository

git clone https://github.com/AlexanderDKazakov/nnmeta
cd nnmeta

Install requirements

pip3 install -r requirements.txt

Install NNmeta

pip3 install .

Usage

NNmeta support certain convention in data structure and it is required to structure the data in such way:

# /path/to/my/base

base
└── xyz
    ├── samples.xyz
    └── samples_for_cc.xyz

After first run additional folders will be created: models, dbs, splits, tests

from nnmeta import NNClass # this is a main class for NN training 

info = dict(
	runner = {  # network name
		# data source [extended xyz file]; used for converting to DB [internal usage]
		# "filename" : {"range" ex. [from:to:step], epochs should be done}
		"samples.xyz" : {":" : 20},  # train `runner` nn on all samples of `samples.xyz` 20 epochs
	},

	runner_features = dict(
		n_features              = 64,    # details in NN class [default is 128]
		n_filters               = 32,    #
		n_gaussians             = 12,    # default 25
		batch_size              = 512,   #                     [parameter for tuning]
		lr                      = 1e-4,  # learning rate       [parameter for tuning]
		db_properties           = ("energy", "forces", "dipole_moment"), # what can be found in the `samples.xyz` file
		training_properties     = ("energy", "forces", "dipole_moment"), # what one wants to train
		loss_tradeoff           = (0.2, 0.8, 0.6),
		n_layers_energy_force   = 2,     # default 2           [parameter for tuning]
		n_neurons_energy_force  = None,  # default None        [parameter for tuning]
		n_layers_dipole_moment  = 2,     # default 2           [parameter for tuning]
		n_neurons_dipole_moment = None,  # default None        [parameter for tuning]
		loss_function_choice    = "mse", # "mae", "mse", "sae"

		train_samples_percent              = 70,
		valid_samples_percent              = 20,

		predict_each_epoch                 = 200,
		validate_each_epoch                = 30,

   		# cross-check with next files
       		check_list_files = {
		# this file should lie in the same `xyz` dir
			"samples_for_cc.xyz" : dict(num_points = 1000),
       		}
	)
)

nn = NNClass(info=info, network_name="runner", 
			system_path="/path/to/my/base")
nn.prepare_network()

Contribution

Feel free to contribute to the project, but please create initially an issue with detailed problem and way to resolve it.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nnmeta-2.0.1.tar.gz (21.2 kB view hashes)

Uploaded Source

Built Distribution

nnmeta-2.0.1-py3-none-any.whl (20.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page