From c5ecabbab270e48a2ff1f4156398ad7ee420a792 Mon Sep 17 00:00:00 2001 From: sgbaird Date: Thu, 9 Jun 2022 14:30:27 -0600 Subject: [PATCH 1/6] Update run_grayskull.py --- scripts/run_grayskull.py | 41 ++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/scripts/run_grayskull.py b/scripts/run_grayskull.py index bb20993..108b75b 100644 --- a/scripts/run_grayskull.py +++ b/scripts/run_grayskull.py @@ -1,12 +1,13 @@ """Touch up the conda recipe from grayskull using conda-souschef.""" import os -from copy import deepcopy +from copy import copy from os import getcwd from os.path import basename, dirname, join, normpath from pathlib import Path from shutil import copyfile from warnings import warn +import numpy as np from souschef.recipe import Recipe import xtal2png as module @@ -16,6 +17,11 @@ name, version = module.__name__, module.__version__ +replace_underscores_with_hyphens = True + +if replace_underscores_with_hyphens: + name = name.replace("_", "-") + src_dirname = "src" if basename(normpath(getcwd())) != src_dirname: warn( @@ -45,12 +51,31 @@ my_recipe = Recipe(load_file=fpath) -bld = my_recipe["build"] -bld.add_section({"noarch": "python"}) -blank_line = deepcopy(bld.value[bld.value.index("")]) -bld.value[bld.value.index("")].remove() -# how to add blank_line back in? Following doesn't seem to work: -bld.value = bld.value + [blank_line] +# ensure proper order for conda-forge +keys = list(my_recipe.keys()) + +# https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html +key_order = [ + "package", + "source", + "build", + "requirements", + "test", + "outputs", + "about", + "app", + "extra", +] +unshared_keys = np.setdiff1d(key_order, keys) + +ordered_keys = copy(key_order) +for key in unshared_keys: + ordered_keys.remove(key) + +for key in ordered_keys: + my_recipe.yaml.move_to_end(key) + +my_recipe["build"].add_section({"noarch": "python"}) try: del my_recipe["build"]["skip"] @@ -81,7 +106,7 @@ # my_recipe["about"].insert(0, "key", "value") # # sometimes package names differ between PyPI and Anaconda (e.g. `kaleido`) -# my_recipe["requirements"]["run"].replace("kaleido", "python-kaleido") +my_recipe["requirements"]["run"].replace("kaleido", "python-kaleido") # # It's better to install some packages either exclusively via Anaconda or # # via custom PyPI installation instructions (see e.g. the selectable table from: From a83bb8b6d6261fcd960628c4b0aa630210025902 Mon Sep 17 00:00:00 2001 From: sgbaird Date: Thu, 9 Jun 2022 14:30:48 -0600 Subject: [PATCH 2/6] Create 3.0-denoising-diffusion.ipynb --- notebooks/3.0-denoising-diffusion.ipynb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 notebooks/3.0-denoising-diffusion.ipynb diff --git a/notebooks/3.0-denoising-diffusion.ipynb b/notebooks/3.0-denoising-diffusion.ipynb new file mode 100644 index 0000000..a610084 --- /dev/null +++ b/notebooks/3.0-denoising-diffusion.ipynb @@ -0,0 +1,19 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From fe05ad1b3165d4ef407bb44a6d282ab1a53b6f32 Mon Sep 17 00:00:00 2001 From: sgbaird Date: Thu, 9 Jun 2022 14:30:57 -0600 Subject: [PATCH 3/6] Create ddpm.py --- notebooks/ddpm.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 notebooks/ddpm.py diff --git a/notebooks/ddpm.py b/notebooks/ddpm.py new file mode 100644 index 0000000..5b9b2b4 --- /dev/null +++ b/notebooks/ddpm.py @@ -0,0 +1,49 @@ +from os import path + +from denoising_diffusion_pytorch import GaussianDiffusion, Trainer, Unet +from mp_time_split.core import MPTimeSplit + +from xtal2png.core import XtalConverter + +mpt = MPTimeSplit() +mpt.load() + +fold = 0 +train_inputs, val_inputs, train_outputs, val_outputs = mpt.get_train_and_val_data(fold) + +data_path = path.join("data", "preprocessed", "mp-time-split") +xc = XtalConverter(save_dir=data_path) + +model = Unet(dim=64, dim_mults=(1, 2, 4, 8), channels=1).cuda() + +diffusion = GaussianDiffusion( + model, + channels=1, + image_size=64, + timesteps=10000, # number of steps + loss_type="l1", # L1 or L2 +).cuda() + +trainer = Trainer( + diffusion, + data_path, + image_size=64, + train_batch_size=2, + train_lr=2e-5, + train_num_steps=700000, # total training steps + gradient_accumulate_every=2, # gradient accumulation steps + ema_decay=0.995, # exponential moving average decay + amp=True, # turn on mixed precision +) + +trainer.train() + +sampled_images = diffusion.sample(batch_size=100) + +# import numpy as np +# from PIL import Image +# data = np.squeeze(sampled_images.cpu().numpy()) +# imgs = [] +# for d in data: +# img = Image.fromarray(d, mode="L") +# imgs.append(img) From 33c2b6b948e43140a6ba5068b6d81ef39e182d70 Mon Sep 17 00:00:00 2001 From: sgbaird Date: Thu, 9 Jun 2022 14:57:01 -0600 Subject: [PATCH 4/6] add middle initial for Michael --- reports/paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reports/paper.md b/reports/paper.md index 84945a0..0d441ed 100644 --- a/reports/paper.md +++ b/reports/paper.md @@ -15,7 +15,7 @@ authors: orcid: 0000-0002-6583-7755 equal-contrib: false affiliation: "1" # (Multiple affiliations must be quoted) - - name: Michael Alverson + - name: Michael D. Alverson orcid: 0000-0002-4857-7584 equal-contrib: false affiliation: "1" # (Multiple affiliations must be quoted) From 8ea35c15ff470ac075a3cb1e39c1631667335cc8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 10 Jun 2022 02:15:27 +0000 Subject: [PATCH 5/6] docs(CHANGELOG): update release notes --- CHANGELOG.md | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d44d21f..6f87c9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,36 @@ # CHANGELOG +## Unreleased + +Changes unreleased. + +### Bug Fixes + +- general: + - fix typos, remove extraneous figure, add future work ([d0ffb91](https://github.com/sparks-baird/xtal2png/commit/d0ffb917e062c0a580a42dc5ee5309c4e036e48f)) ([#67](https://github.com/sparks-baird/xtal2png/pull/67)) + +## [v0.4.0](https://github.com/sparks-baird/xtal2png/releases/tag/v0.4.0) - 2022-06-03 02:01:29 + + + +## What's Changed +### Other Changes +* available on conda-forge by @sgbaird in https://github.com/sparks-baird/xtal2png/pull/49 +* fix colab link in index.md by @sgbaird in https://github.com/sparks-baird/xtal2png/pull/53 +* add colab link to README by @sgbaird in https://github.com/sparks-baird/xtal2png/pull/52 +* fixup colab link by @sgbaird in https://github.com/sparks-baird/xtal2png/pull/56 +* add note about needing development versions of pyscaffold and extensions by @sgbaird in https://github.com/sparks-baird/xtal2png/pull/58 +* Support rgb images in `png2xtal` by converting to grayscale by @sgbaird in https://github.com/sparks-baird/xtal2png/pull/62 + + +**Full Changelog**: https://github.com/sparks-baird/xtal2png/compare/v0.3.0...v0.4.0 + +### Bug Fixes + +- general: + - fixup colab link ([7803383](https://github.com/sparks-baird/xtal2png/commit/7803383b2e1acbb565b417d82606a6c40ac425b8)) ([#56](https://github.com/sparks-baird/xtal2png/pull/56)) + - fix colab link in index.md ([7ff9bfa](https://github.com/sparks-baird/xtal2png/commit/7ff9bface93181f40fcf9e733dd082f737249b74)) ([#53](https://github.com/sparks-baird/xtal2png/pull/53)) + ## [v0.3.0](https://github.com/sparks-baird/xtal2png/releases/tag/v0.3.0) - 2022-05-31 17:28:49 @@ -61,10 +92,7 @@ Feature ranges for `a`, `b`, `c`, `volume`, and `distance` are chosen based on M ## [v0.1.6](https://github.com/sparks-baird/xtal2png/releases/tag/v0.1.6) - 2022-05-27 05:36:46 -- no changes - - ## What's Changed ### Other Changes * minor typos, clarification by @sgbaird in https://github.com/sparks-baird/xtal2png/pull/29 From 96ef7e49dfd9d18cc8d0b5744fed580d73531c46 Mon Sep 17 00:00:00 2001 From: sgbaird Date: Thu, 9 Jun 2022 21:18:45 -0600 Subject: [PATCH 6/6] ignore ddpm models and samples --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 92d4d4d..47cfc15 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,5 @@ MANIFEST src/xtal2png/meta.yaml xtal2png/meta.yaml tmp/** +results/model-*.pt +results/sample-*.png