Skip to main content

Allows to merge two keras.Models

Project description

Keras Merge

Keras Merge allows to merge two Keras model instances without having access to their generating functions.

Github PyPI License Python Versions Linux Maintenance Maintenance

Release Notes

VersionComment
v1.1 Copying over weights from source models to merged model (active by default, disable using: km.merge(..., copy_weights=False))
v1.0 Initial Release

Usage

import keras_merge as km

from keras import Model, Input
import numpy as np
from keras.utils import plot_model

def model(mul: bool) -> Model:
    x = Input(shape=(2, 3))
    y = Input(shape=(2, 3))
    if mul: z = x * y
    else:   z = x + y
    return Model(inputs=[x, y], outputs=z)

A = model(True)
B = model(False)
C = km.merge(A, B,				# models
	[*A.inputs, B.inputs[0]],	# inputs
	B.outputs,					# outputs
	[							# mapping [(src->dst), ...]
		(A.outputs[0], B.inputs[1])
	]
)

a = np.random.rand(1, 2, 3)
b = np.random.rand(1, 2, 3)
c = np.random.rand(1, 2, 3)

d = A([a, b])
e = B([c, d])
f = C([a, b, c])

print("A+B:    ", np.reshape(e, -1))
print("Merged: ", np.reshape(f, -1))

plot_model(A, to_file='A.png')
plot_model(B, to_file='B.png')
plot_model(C, to_file='C.png')

How to build

pip3 install illyrian
illyrian keras_merge.json
pip3 install keras_merge-1.0-py3-none-any.whl

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

keras_merge-1.1-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file keras_merge-1.1-py3-none-any.whl.

File metadata

  • Download URL: keras_merge-1.1-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for keras_merge-1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6e0cecc46c1f5873ef18ab52337e5a71ca51f631504dd8449b1e886489ce8108
MD5 42d0ad5b98f0c453edfa18b1e8b52d69
BLAKE2b-256 b02aa0b3bed68ecb03a60823871ec84d274d83275d7914723a0a5e6fe8a062cd

See more details on using hashes here.

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