Compare commits
No commits in common. "5d54ccd75159934d097de03ae0f82df2f85cf41c" and "1caca1b0a81078341d8788be46caca1f70471b1a" have entirely different histories.
5d54ccd751
...
1caca1b0a8
33
aug.py
33
aug.py
@ -1,33 +0,0 @@
|
||||
import tensorflow as tf
|
||||
import numpy as np
|
||||
from PIL import Image
|
||||
from os import listdir as ls
|
||||
from sys import argv, exit
|
||||
from tensorflow.keras.utils import array_to_img as img
|
||||
from tensorflow.keras import layers as kl
|
||||
|
||||
if len(argv) != 3:
|
||||
exit(1)
|
||||
|
||||
files = ls(argv[1])
|
||||
|
||||
for v, fn in enumerate(files):
|
||||
i = np.array(Image.open(f"{argv[1]}/{fn}").convert('RGB').resize((300,300))) / 255.0
|
||||
print(f"Processing {v+1:03d}/{len(files)}: {fn}")
|
||||
|
||||
for x1 in range(3):
|
||||
i1 = tf.image.random_brightness(i, 0.6)
|
||||
for x2 in range(3):
|
||||
i2 = tf.image.random_saturation(i1, 0.1, 2.0)
|
||||
for x3 in range(3):
|
||||
i3 = tf.image.random_contrast(i2, 0.2, 1.9)
|
||||
img(i3).save(f"{argv[2]}/{fn.rsplit('.', 1)[0]}_{x1}_{x2}_{x3}_1.png")
|
||||
|
||||
i3 = tf.image.flip_left_right(i3)
|
||||
img(i3).save(f"{argv[2]}/{fn.rsplit('.', 1)[0]}_{x1}_{x2}_{x3}_2.png")
|
||||
|
||||
i3 = tf.image.flip_up_down(i3)
|
||||
img(i3).save(f"{argv[2]}/{fn.rsplit('.', 1)[0]}_{x1}_{x2}_{x3}_3.png")
|
||||
|
||||
i3 = tf.image.flip_left_right(i3)
|
||||
img(i3).save(f"{argv[2]}/{fn.rsplit('.', 1)[0]}_{x1}_{x2}_{x3}_4.png")
|
||||
@ -1,45 +0,0 @@
|
||||
#from PIL import Image
|
||||
#from sys import argv, exit
|
||||
import numpy as np
|
||||
import cv2 as cv
|
||||
|
||||
from tensorflow.keras.utils import array_to_img as img
|
||||
|
||||
from matplotlib import pyplot as plt
|
||||
|
||||
#if len(argv) != 2:
|
||||
# exit(1)
|
||||
|
||||
#i = np.array(Image.open(argv[1]).convert('RGB').resize((300,300)))
|
||||
|
||||
from m import *
|
||||
mod.load_weights("model3-val-acc-0.74.model.keras")
|
||||
|
||||
c = cv.VideoCapture(0)
|
||||
|
||||
while True:
|
||||
ret, frame = c.read()
|
||||
|
||||
pi = np.array(img(cv.cvtColor(frame, cv.COLOR_BGR2RGB)).resize((300, 300)).convert("RGB"))
|
||||
#plt.imshow(pi)
|
||||
#plt.show()
|
||||
|
||||
#print(pi.astype(float))
|
||||
|
||||
r = mod.predict(np.array([pi.astype(float)]))
|
||||
|
||||
cv.putText(frame, f"Y: {r[0][1]:.9f}", (10, 40), cv.FONT_HERSHEY_SIMPLEX, 1, (200,255,200), 2)
|
||||
cv.putText(frame, f"N: {r[0][0]:.9f}", (10, 70), cv.FONT_HERSHEY_SIMPLEX, 1, (200,200,255), 2)
|
||||
|
||||
cv.imshow('me', frame)
|
||||
|
||||
if cv.waitKey(1) == ord('q'):
|
||||
break
|
||||
|
||||
#print(frame)
|
||||
|
||||
c.release()
|
||||
cv.destroyAllWindows()
|
||||
|
||||
#r = mod.predict(np.array([i]))
|
||||
#print(r)
|
||||
15
ident.py
15
ident.py
@ -1,15 +0,0 @@
|
||||
from m import *
|
||||
from PIL import Image
|
||||
from sys import argv, exit
|
||||
import numpy as np
|
||||
|
||||
|
||||
if len(argv) != 2:
|
||||
exit(1)
|
||||
|
||||
i = np.array(Image.open(argv[1]).convert('RGB').resize((300,300)))
|
||||
|
||||
mod.load_weights("model3.model.keras")
|
||||
|
||||
r = mod.predict(np.array([i]))
|
||||
print(r)
|
||||
160
m.py
160
m.py
@ -1,160 +0,0 @@
|
||||
import tensorflow as tf
|
||||
import numpy as np
|
||||
|
||||
from tensorflow import keras as k
|
||||
from tensorflow.keras import layers as kl
|
||||
from tensorflow.keras import models as km
|
||||
from tensorflow.keras import optimizers as ko
|
||||
from tensorflow.keras import callbacks as kc
|
||||
|
||||
CONV_SIZE = 96
|
||||
MPPT_SIZE = 256
|
||||
DRPT_RATE = 0.3
|
||||
TOUT_AMNT = 2
|
||||
|
||||
def conv(i, n, s, t = (1, 1)):
|
||||
c = kl.Conv2D(n, s, padding = 'same', strides = t)(i)
|
||||
b = kl.BatchNormalization()(c)
|
||||
return kl.Activation('relu')(b)
|
||||
|
||||
def avg(i, s):
|
||||
return kl.AveragePooling2D(s, padding = 'same', strides = (1, 1))(i)
|
||||
|
||||
def max(i, s):
|
||||
return kl.MaxPooling2D(s, padding = 'same', strides = (1, 1))(i)
|
||||
|
||||
def generate_start(i):
|
||||
s = kl.Rescaling(1./255.)(i)
|
||||
r1 = conv(s, CONV_SIZE, (3, 3))
|
||||
r2 = conv(r1, CONV_SIZE, (3, 3))
|
||||
r3 = conv(r2, CONV_SIZE, (3, 3))
|
||||
|
||||
m1 = kl.MaxPooling2D((3, 3))(r3)
|
||||
|
||||
r4 = conv(m1, CONV_SIZE, (1, 1))
|
||||
r5 = conv(r4, CONV_SIZE, (3, 3))
|
||||
|
||||
return kl.MaxPooling2D((3, 3))(r5)
|
||||
|
||||
def generate_type_a(i):
|
||||
a11 = conv(i, CONV_SIZE, (1, 1))
|
||||
|
||||
a21 = avg(i, (3, 3))
|
||||
a22 = conv(a21, CONV_SIZE, (1, 1))
|
||||
|
||||
a31 = conv(i, CONV_SIZE, (1, 1))
|
||||
a32 = conv(a31, CONV_SIZE, (3, 3))
|
||||
|
||||
a41 = conv(i, CONV_SIZE, (1, 1))
|
||||
a42 = conv(a41, CONV_SIZE, (3, 3))
|
||||
a43 = conv(a42, CONV_SIZE, (3, 3))
|
||||
|
||||
return kl.Concatenate()([a11, a22, a32, a43])
|
||||
|
||||
def generate_ab_bridge(i):
|
||||
ab11 = conv(i, CONV_SIZE, (1, 1))
|
||||
ab12 = conv(ab11, CONV_SIZE, (3, 3))
|
||||
ab13 = conv(ab12, CONV_SIZE, (3, 3))
|
||||
|
||||
ab21 = conv(i, CONV_SIZE, (3, 3))
|
||||
|
||||
ab31 = max(i, (3, 3))
|
||||
|
||||
return kl.Concatenate()([ab13, ab21, ab31])
|
||||
|
||||
def generate_type_b(i):
|
||||
b11 = conv(i, CONV_SIZE, (1, 1))
|
||||
b12 = conv(b11, CONV_SIZE, (7, 1))
|
||||
b13 = conv(b12, CONV_SIZE, (1, 7))
|
||||
b14 = conv(b13, CONV_SIZE, (7, 1))
|
||||
b15 = conv(b14, CONV_SIZE, (1, 7))
|
||||
|
||||
b21 = conv(i, CONV_SIZE, (1, 1))
|
||||
b22 = conv(b21, CONV_SIZE, (1, 7))
|
||||
b23 = conv(b22, CONV_SIZE, (7, 1))
|
||||
|
||||
b31 = conv(i, CONV_SIZE, (1, 1))
|
||||
|
||||
b41 = avg(i, (3, 3))
|
||||
b42 = conv(b41, CONV_SIZE, (1, 1))
|
||||
|
||||
return kl.Concatenate()([b15, b23, b31, b42])
|
||||
|
||||
def generate_bc_bridge(i):
|
||||
bc11 = conv(i, CONV_SIZE, (1, 1))
|
||||
bc12 = conv(bc11, CONV_SIZE, (7, 1))
|
||||
bc13 = conv(bc12, CONV_SIZE, (1, 7))
|
||||
bc14 = conv(bc13, CONV_SIZE, (3, 3))
|
||||
|
||||
bc21 = conv(i, CONV_SIZE, (1, 1))
|
||||
bc22 = conv(bc21, CONV_SIZE, (1, 1))
|
||||
|
||||
bc31 = max(i, (3, 3))
|
||||
|
||||
return kl.Concatenate()([bc14, bc22, bc31])
|
||||
|
||||
def generate_aux(i):
|
||||
u1 = kl.AveragePooling2D((5, 5))(i)
|
||||
u2 = conv(u1, CONV_SIZE, (1, 1))
|
||||
u3 = kl.Flatten()(u2)
|
||||
u4 = kl.Dropout(DRPT_RATE)(u3)
|
||||
u5 = kl.Dense(MPPT_SIZE)(u4)
|
||||
u6 = kl.Dense(TOUT_AMNT)(u5)
|
||||
|
||||
return kl.Activation('softmax')(u6)
|
||||
|
||||
def generate_type_c(i):
|
||||
c11 = conv(i, CONV_SIZE, (1, 1))
|
||||
c12 = conv(c11, CONV_SIZE, (3, 3))
|
||||
c13 = conv(c12, CONV_SIZE, (1, 3))
|
||||
c14 = conv(c12, CONV_SIZE, (3, 1))
|
||||
|
||||
c21 = conv(i, CONV_SIZE, (1, 1))
|
||||
c22 = conv(c21, CONV_SIZE, (1, 3))
|
||||
c23 = conv(c21, CONV_SIZE, (3, 1))
|
||||
|
||||
c31 = max(i, (3, 3))
|
||||
c32 = conv(c31, CONV_SIZE, (1, 1))
|
||||
|
||||
c41 = conv(i, CONV_SIZE, (1, 1))
|
||||
|
||||
return kl.Concatenate()([c14, c23, c32, c41])
|
||||
|
||||
def generate_finish(i):
|
||||
f1 = kl.AveragePooling2D((5, 5))(i)
|
||||
f2 = conv(f1, CONV_SIZE, (1, 1))
|
||||
f3 = kl.Flatten()(f2)
|
||||
f4 = kl.Dropout(DRPT_RATE)(f3)
|
||||
f5 = kl.Dense(MPPT_SIZE)(f4)
|
||||
f6 = kl.Dense(TOUT_AMNT)(f5)
|
||||
|
||||
return kl.Activation('softmax')(f6)
|
||||
|
||||
|
||||
gi = kl.Input((300, 300, 3))
|
||||
|
||||
ds = generate_start(gi)
|
||||
|
||||
for _ in range(3):
|
||||
ds = generate_type_a(ds)
|
||||
|
||||
ds = generate_ab_bridge(ds)
|
||||
|
||||
for _ in range(4):
|
||||
ds = generate_type_b(ds)
|
||||
|
||||
uo = generate_aux(ds)
|
||||
|
||||
go = generate_bc_bridge(ds)
|
||||
|
||||
for _ in range(2):
|
||||
go = generate_type_c(go)
|
||||
|
||||
go = generate_finish(go)
|
||||
|
||||
mod = k.Model(inputs = gi, outputs = go)
|
||||
|
||||
mod.summary()
|
||||
mod.compile(optimizer = ko.Lion(learning_rate = 0.0001),
|
||||
loss = 'categorical_crossentropy',
|
||||
metrics = ['accuracy'])
|
||||
47
stats-cm.py
47
stats-cm.py
@ -1,47 +0,0 @@
|
||||
from m import *
|
||||
|
||||
from matplotlib import pyplot as plt
|
||||
|
||||
def __prep_conf_matr(data):
|
||||
output_matrix = np.zeros([2, 2])
|
||||
|
||||
for p, r in zip(*data):
|
||||
print(p, r)
|
||||
output_matrix[np.argmax(p)][np.argmax(r)] += 1
|
||||
|
||||
return output_matrix
|
||||
|
||||
|
||||
def __plot_conf_matr(data):
|
||||
matr = __prep_conf_matr(data)
|
||||
|
||||
_, ax = plt.subplots()
|
||||
|
||||
ax.matshow(matr, cmap = plt.cm.Blues)
|
||||
|
||||
for i, x in enumerate(matr):
|
||||
for j, y in enumerate(x):
|
||||
ax.text(i,
|
||||
j,
|
||||
str(round(y)),
|
||||
va = "center",
|
||||
ha = "center")
|
||||
|
||||
plt.show()
|
||||
|
||||
ds = tf.keras.preprocessing.image_dataset_from_directory(
|
||||
'../dataset-orig-aug-1-mini-1/',
|
||||
labels = 'inferred',
|
||||
label_mode = 'categorical',
|
||||
color_mode = 'rgb',
|
||||
image_size = (300, 300),
|
||||
batch_size = 32,
|
||||
verbose = True
|
||||
)
|
||||
|
||||
#ds_short = ds.take(1)
|
||||
|
||||
p = mod.predict(ds)
|
||||
r = np.concatenate([y for x, y in ds])
|
||||
|
||||
__plot_conf_matr([p, r])
|
||||
@ -1,20 +0,0 @@
|
||||
from m import *
|
||||
|
||||
from matplotlib import pyplot as plt
|
||||
|
||||
ds = tf.keras.preprocessing.image_dataset_from_directory(
|
||||
'../dataset-orig-aug-1-mini-1/',
|
||||
labels = 'inferred',
|
||||
label_mode = 'categorical',
|
||||
color_mode = 'rgb',
|
||||
image_size = (300, 300),
|
||||
batch_size = 32,
|
||||
verbose = True
|
||||
)
|
||||
|
||||
p = mod.predict(ds)
|
||||
r = np.concatenate([y for x, y in ds])
|
||||
|
||||
with open('results.txt', 'w') as f:
|
||||
for i in zip(p, r):
|
||||
f.write(f"{i[0][0]} {i[0][1]} {i[1][0]} {i[1][1]}\n")
|
||||
@ -1,30 +0,0 @@
|
||||
from m import *
|
||||
from sklearn.metrics import f1_score, precision_score, recall_score, accuracy_score
|
||||
|
||||
|
||||
ds = tf.keras.preprocessing.image_dataset_from_directory(
|
||||
'../dataset-orig-aug-1-mini-1/',
|
||||
labels = 'inferred',
|
||||
label_mode = 'categorical',
|
||||
color_mode = 'rgb',
|
||||
image_size = (300, 300),
|
||||
batch_size = 32,
|
||||
verbose = True
|
||||
)
|
||||
|
||||
p = []
|
||||
r = []
|
||||
|
||||
with open('results.txt', 'r') as f:
|
||||
for i in f.read().split('\n'):
|
||||
if i == '':
|
||||
continue
|
||||
|
||||
res = tuple(map(float, i.split()))
|
||||
p.append([res[0] > 0.5, res[1] > 0.5])
|
||||
r.append([res[2], res[3]])
|
||||
|
||||
print(f"Accuracy : {accuracy_score(p, r)}")
|
||||
print(f"Precision : {precision_score(p, r, average = 'micro')}")
|
||||
print(f"Recall : {recall_score(p, r, average = 'micro')}")
|
||||
print(f"F1 Score : {f1_score(p, r, average = 'micro')}")
|
||||
@ -1,13 +0,0 @@
|
||||
from matplotlib import pyplot as plt
|
||||
|
||||
ta = [0.5396, 0.6266, 0.7137, 0.6768, 0.7114, 0.7821, 0.7373, 0.6866, 0.5987, 0.6861, 0.7236, 0.7147]
|
||||
va = [0.4273, 0.4714, 0.4273, 0.4229, 0.4317, 0.4229, 0.5022, 0.4449, 0.5947, 0.7489, 0.5815, 0.7048]
|
||||
|
||||
x = [i+1 for i in range(12)]
|
||||
|
||||
plt.plot(x, ta)
|
||||
plt.plot(x, va)
|
||||
|
||||
plt.legend(["train_acc", "valid_acc"])
|
||||
|
||||
plt.show()
|
||||
116
test.py
Normal file
116
test.py
Normal file
@ -0,0 +1,116 @@
|
||||
import tensorflow as tf
|
||||
import numpy as np
|
||||
|
||||
from tensorflow.keras import layers as kl
|
||||
from tensorflow.keras import models as km
|
||||
from tensorflow.keras import optimizers as ko
|
||||
|
||||
def generate_inception_model(a = 5, b = 4, c = 2):
|
||||
# start
|
||||
i = kl.Input(shape = (300, 300, 3))
|
||||
|
||||
r1 = kl.Conv2D(1024, (3, 3), padding = 'same', activation = 'relu')(i)
|
||||
r2 = kl.Conv2D(1024, (5, 5), padding = 'same', activation = 'relu')(r1)
|
||||
r3 = kl.Conv2D(1024, (7, 7), padding = 'same', activation = 'relu')(r2)
|
||||
|
||||
m1 = kl.MaxPooling2D((3, 3))(r3)
|
||||
|
||||
r4 = kl.Conv2D(1024, (3, 3), padding = 'same', activation = 'relu')(m1)
|
||||
r5 = kl.Conv2D(1024, (5, 5), padding = 'same', activation = 'relu')(r4)
|
||||
|
||||
ia0 = kl.MaxPooling2D((2, 2))(r5)
|
||||
|
||||
# a types
|
||||
for k in range(a):
|
||||
exec(f"ia{k}_1_1 = kl.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(ia{k})")
|
||||
|
||||
exec(f"ia{k}_3_1 = kl.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(ia{k})")
|
||||
exec(f"ia{k}_3_2 = kl.Conv2D(1024, (3, 1), padding = 'same', activation = 'relu')(ia{k}_3_1)")
|
||||
|
||||
exec(f"ia{k}_5_1 = kl.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(ia{k})")
|
||||
exec(f"ia{k}_5_2 = kl.Conv2D(1024, (3, 1), padding = 'same', activation = 'relu')(ia{k}_5_1)")
|
||||
exec(f"ia{k}_5_3 = kl.Conv2D(1024, (5, 1), padding = 'same', activation = 'relu')(ia{k}_5_2)")
|
||||
|
||||
exec(f"ia{k}_7_1 = kl.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(ia{k})")
|
||||
exec(f"ia{k}_7_2 = kl.Conv2D(1024, (3, 1), padding = 'same', activation = 'relu')(ia{k}_7_1)")
|
||||
exec(f"ia{k}_7_3 = kl.Conv2D(1024, (5, 1), padding = 'same', activation = 'relu')(ia{k}_7_2)")
|
||||
exec(f"ia{k}_7_4 = kl.Conv2D(1024, (7, 1), padding = 'same', activation = 'relu')(ia{k}_7_3)")
|
||||
|
||||
exec(f"ia{k+1} = kl.Concatenate()([ia{k}_1_1, ia{k}_3_2, ia{k}_5_3, ia{k}_7_4])")
|
||||
|
||||
# grid size reductor 1
|
||||
iab_1 = kl.Conv2D(1024, (5, 1), padding = 'same', activation = 'relu')(eval(f"ia{a}"))
|
||||
|
||||
iab_2 = kl.Conv2D(1024, (5, 1), padding = 'same', activation = 'relu')(eval(f"ia{a}"))
|
||||
iab_3 = kl.Conv2D(1024, (3, 1), padding = 'same', activation = 'relu')(iab_2)
|
||||
iab_4 = kl.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(iab_3)
|
||||
|
||||
iab_6 = kl.Concatenate()([iab_1, iab_4, iab_5])
|
||||
|
||||
# b types
|
||||
for k in range(b):
|
||||
exec(f"ib{k}_1_1 = kl.MaxPooling2D((2, 2), padding = 'same')(iab_6)")
|
||||
exec(f"ib{k}_1_2 = kl.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(i)")
|
||||
|
||||
exec(f"ib{k}_3_1 = kl.Conv2D(1024, (3, 1), padding = 'same', activation = 'relu')(iab_6)")
|
||||
|
||||
exec(f"ib{k}_5_1 = kl.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(iab_6)")
|
||||
exec(f"ib{k}_5_2 = kl.Conv2D(1024, (3, 1), padding = 'same', activation = 'relu')(ib{k}_5_1)")
|
||||
exec(f"ib{k}_5_3 = kl.Conv2D(1024, (5, 1), padding = 'same', activation = 'relu')(ib{k}_5_2)")
|
||||
|
||||
exec(f"ib{k}_7_1 = kl.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(iab_6)")
|
||||
exec(f"ib{k}_7_2 = kl.Conv2D(1024, (3, 1), padding = 'same', activation = 'relu')(ib{k}_7_1)")
|
||||
exec(f"ib{k}_7_3 = kl.Conv2D(1024, (5, 1), padding = 'same', activation = 'relu')(ib{k}_7_2)")
|
||||
exec(f"ib{k}_7_4 = kl.Conv2D(1024, (7, 1), padding = 'same', activation = 'relu')(ib{k}_7_3)")
|
||||
|
||||
exec(f"ib{k+1} = kl.Concatenate()([ib{k}_1_2, ib{k}_3_2, ib{k}_5_3, ib{k}_7_4])")
|
||||
|
||||
# grid size reductor 2
|
||||
|
||||
# c types
|
||||
for k in range(c):
|
||||
exec(f"ic{k}_1_1 = kl.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(i{'b' if k else 'a'}{k if k else a})")
|
||||
|
||||
exec(f"ic{k}_3_1 = kl.Conv2D(1024, (3, 1), padding = 'same', activation = 'relu')(i{'b' if k else 'a'}{k if k else a})")
|
||||
|
||||
exec(f"ic{k}_5_1 = kl.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(i{'b' if k else 'a'}{k if k else a})")
|
||||
exec(f"ic{k}_5_2 = kl.Conv2D(1024, (3, 1), padding = 'same', activation = 'relu')(ib{k}_5_1)")
|
||||
exec(f"ic{k}_5_3 = kl.Conv2D(1024, (5, 1), padding = 'same', activation = 'relu')(ib{k}_5_2)")
|
||||
|
||||
exec(f"ic{k}_7_1 = kl.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(i{'b' if k else 'a'}{k if k else a})")
|
||||
exec(f"ic{k}_7_2 = kl.Conv2D(1024, (3, 1), padding = 'same', activation = 'relu')(ib{k}_7_1)")
|
||||
exec(f"ic{k}_7_3 = kl.Conv2D(1024, (5, 1), padding = 'same', activation = 'relu')(ib{k}_7_2)")
|
||||
exec(f"ic{k}_7_4 = kl.Conv2D(1024, (7, 1), padding = 'same', activation = 'relu')(ib{k}_7_3)")
|
||||
|
||||
exec(f"ib{k+1} = kl.Concatenate()([ib{k}_1_1, ib{k}_3_2, ib{k}_5_3, ib{k}_7_4])")
|
||||
|
||||
# mppt
|
||||
|
||||
o = eval(f"ic{c}")
|
||||
return tf.keras.Model(inputs = i, outputs = o)
|
||||
|
||||
|
||||
'''
|
||||
a_i = l.Input(shape = (300, 300, 3))
|
||||
|
||||
a_1_1 = l.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(a_i)
|
||||
|
||||
a_3_1 = l.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(a_i)
|
||||
a_3_2 = l.Conv2D(1024, (3, 1), padding = 'same', activation = 'relu')(a_3_1)
|
||||
|
||||
a_5_1 = l.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(a_i)
|
||||
a_5_2 = l.Conv2D(1024, (5, 1), padding = 'same', activation = 'relu')(a_5_1)
|
||||
|
||||
a_7_1 = l.Conv2D(1024, (1, 1), padding = 'same', activation = 'relu')(a_i)
|
||||
a_7_2 = l.Conv2D(1024, (7, 1), padding = 'same', activation = 'relu')(a_7_1)
|
||||
|
||||
a_o = l.Concatenate()([a_1_1, a_3_2, a_5_2, a_7_2])
|
||||
|
||||
inception_type_a = [a_i, a_o]
|
||||
|
||||
tf.keras.Model(*inception_type_a)
|
||||
'''
|
||||
|
||||
mod = generate_inception_model()
|
||||
mod.summary()
|
||||
mod.compile(optimizer = ko.Lion(learning_rate = 0.001))
|
||||
15
train_l.py
15
train_l.py
@ -1,15 +0,0 @@
|
||||
import tensorflow as tf
|
||||
|
||||
ds_train, ds_valid = tf.keras.preprocessing.image_dataset_from_directory(
|
||||
'../dataset-orig',
|
||||
labels = 'inferred',
|
||||
label_mode = 'categorical',
|
||||
color_mode = 'rgb',
|
||||
image_size = (300, 300),
|
||||
shuffle = False,
|
||||
validation_split = 0.05,
|
||||
subset = 'both',
|
||||
verbose = True
|
||||
)
|
||||
|
||||
from m import mod
|
||||
@ -1,25 +0,0 @@
|
||||
import tensorflow as tf
|
||||
|
||||
ds_train, ds_valid = tf.keras.preprocessing.image_dataset_from_directory(
|
||||
'/mnt/tmpfs1/ds-mini-1',
|
||||
labels = 'inferred',
|
||||
label_mode = 'categorical',
|
||||
color_mode = 'rgb',
|
||||
batch_size = 16,
|
||||
image_size = (300, 300),
|
||||
shuffle = False,
|
||||
validation_split = 0.05,
|
||||
subset = 'both',
|
||||
verbose = True
|
||||
)
|
||||
|
||||
from m import *
|
||||
|
||||
ckpt = kc.ModelCheckpoint("model3.model.keras",
|
||||
monitor = 'val_accuracy',
|
||||
save_best_only = True)
|
||||
|
||||
h = mod.fit(ds_train,
|
||||
epochs = 9,
|
||||
validation_data = ds_valid,
|
||||
callbacks = [ckpt])
|
||||
Loading…
x
Reference in New Issue
Block a user