import tensorflow as tf
from tensorflow.keras.layers import Input, Dense
from tensorflow.keras import Model
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.losses import MeanAbsoluteError
from tensorflow.keras.initializers import Constant
import numpy as np
models = []
for i in range(3):
inp = Input(shape = (2, ))
outp = Dense(2, use_bias = False, kernel_initializer = Constant(0.5))(inp)
models.append(Model(inputs = inp, outputs = outp))
opts = [Adam(0.1)] * len(models)
# opts = [Adam(0.1) for _ in range(len(models))]
[m.compile(loss = MeanAbsoluteError(), optimizer = o) for m, o in zip(models, opts)]
x_data = np.asarray([[1., 2.]])
print(x_data)
y_data = np.asarray([[2., 2.5]])
print(y_data)
print('-'*5)
for m in models:
pred = m.predict(x_data)
print(pred)
for i in range(3):
print('-'*5)
for m in models:
m.fit(x_data, y_data, verbose = 0)
pred = m.predict(x_data)
print(pred)
aW1wb3J0IHRlbnNvcmZsb3cgYXMgdGYKZnJvbSB0ZW5zb3JmbG93LmtlcmFzLmxheWVycyBpbXBvcnQgSW5wdXQsIERlbnNlCmZyb20gdGVuc29yZmxvdy5rZXJhcyBpbXBvcnQgTW9kZWwKZnJvbSB0ZW5zb3JmbG93LmtlcmFzLm9wdGltaXplcnMgaW1wb3J0IEFkYW0KZnJvbSB0ZW5zb3JmbG93LmtlcmFzLmxvc3NlcyBpbXBvcnQgTWVhbkFic29sdXRlRXJyb3IKZnJvbSB0ZW5zb3JmbG93LmtlcmFzLmluaXRpYWxpemVycyBpbXBvcnQgQ29uc3RhbnQKaW1wb3J0IG51bXB5IGFzIG5wCgptb2RlbHMgPSBbXQpmb3IgaSBpbiByYW5nZSgzKToKCWlucCA9IElucHV0KHNoYXBlID0gKDIsICkpCglvdXRwID0gRGVuc2UoMiwgdXNlX2JpYXMgPSBGYWxzZSwga2VybmVsX2luaXRpYWxpemVyID0gQ29uc3RhbnQoMC41KSkoaW5wKQoJbW9kZWxzLmFwcGVuZChNb2RlbChpbnB1dHMgPSBpbnAsIG91dHB1dHMgPSBvdXRwKSkKb3B0cyA9IFtBZGFtKDAuMSldICogbGVuKG1vZGVscykKIyBvcHRzID0gW0FkYW0oMC4xKSBmb3IgXyBpbiByYW5nZShsZW4obW9kZWxzKSldClttLmNvbXBpbGUobG9zcyA9IE1lYW5BYnNvbHV0ZUVycm9yKCksIG9wdGltaXplciA9IG8pIGZvciBtLCBvIGluIHppcChtb2RlbHMsIG9wdHMpXQoKeF9kYXRhID0gbnAuYXNhcnJheShbWzEuLCAyLl1dKQpwcmludCh4X2RhdGEpCnlfZGF0YSA9IG5wLmFzYXJyYXkoW1syLiwgMi41XV0pCnByaW50KHlfZGF0YSkKcHJpbnQoJy0nKjUpCmZvciBtIGluIG1vZGVsczoKCXByZWQgPSBtLnByZWRpY3QoeF9kYXRhKQoJcHJpbnQocHJlZCkKCmZvciBpIGluIHJhbmdlKDMpOgoJcHJpbnQoJy0nKjUpCglmb3IgbSBpbiBtb2RlbHM6CgkJbS5maXQoeF9kYXRhLCB5X2RhdGEsIHZlcmJvc2UgPSAwKQoJCXByZWQgPSBtLnByZWRpY3QoeF9kYXRhKQoJCXByaW50KHByZWQp