Skip to content

Commit c8ed96b

Browse files
committed
更新逻辑和代码
1 parent a70713f commit c8ed96b

File tree

1 file changed

+68
-61
lines changed

1 file changed

+68
-61
lines changed

run.py

Lines changed: 68 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,18 @@
88
from typing import Tuple
99
from datetime import datetime
1010
except ImportError:
11-
raise "🥹无法安装配件"
11+
raise ImportError("🥹无法安装配件")
1212
finally:
1313
pass
1414

1515
class 华佗AI:
16-
def __init__(self) -> None:
16+
def __init__(self, 展示 :bool) -> None:
1717
super(华佗AI, self).__init__()
1818

1919
matplotlib.rcParams["font.family"] = "Heiti TC"
2020

21+
self.名称: str = "华佗AI"
22+
self.展示 :bool = 展示
2123
self.图片文件 = "./data/images/"
2224
self.seed :int = 21
2325
self.图像高度 :int = 32
@@ -32,68 +34,73 @@ def __init__(self) -> None:
3234
"人参片"
3335
]
3436
self.优化器 :str | None = "adam"
35-
self.纪元 :int = 10
37+
self.纪元 :int = 5
3638

3739
def 训练数据(self) -> None:
3840
self.记录(信息="TensorFlow 版本 |> {}".format(tf.__version__))
3941

40-
if os.path.exists(self.图片文件):
41-
训练目录 :tensorflow.python.data.ops.batch_op._BatchDataset = tf.keras.utils.image_dataset_from_directory(
42-
self.图片文件,
43-
image_size=(self.图像高度, self.图像宽度),
44-
batch_size=self.批量的大小
45-
)
46-
47-
估价目录 :tensorflow.python.data.ops.batch_op._BatchDataset = tf.keras.utils.image_dataset_from_directory(
48-
self.图片文件,
49-
image_size=(self.图像高度, self.图像宽度),
50-
batch_size=self.批量的大小
51-
)
52-
53-
测试目录 :tensorflow.python.data.ops.batch_op._BatchDataset = tf.keras.utils.image_dataset_from_directory(
54-
self.图片文件,
55-
image_size=(self.图像高度, self.图像宽度),
56-
batch_size=self.批量的大小
57-
)
58-
59-
图表.figure(figsize=(10, 10))
60-
61-
62-
for 照片, 名称 in 训练目录.take(1):
63-
for in range(9):
64-
图表.subplot(3, 3, ( + 1))
65-
图表.imshow(照片[].numpy().astype("uint8"))
66-
图表.title(label=self.中药材料[名称[]], fontsize=10, color="green")
67-
图表.axis(self.)
68-
69-
训练模型 = tf.keras.Sequential(
70-
[
71-
tf.keras.layers.Rescaling(1./255),
72-
tf.keras.layers.Conv2D(32, 3, activation=self.活化),
73-
tf.keras.layers.MaxPool2D(),
74-
tf.keras.layers.Conv2D(32, 3, activation=self.活化),
75-
tf.keras.layers.MaxPool2D(),
76-
tf.keras.layers.Conv2D(32, 3, activation=self.活化),
77-
tf.keras.layers.MaxPool2D(),
78-
tf.keras.layers.Flatten(),
79-
tf.keras.layers.Dense(128, activation=self.活化),
80-
tf.keras.layers.Dense(2)
81-
]
82-
)
83-
84-
训练模型.compile(
85-
optimizer=self.优化器,
86-
loss=tf.losses.SparseCategoricalCrossentropy(from_logits=True),
87-
metrics=["accuracy"]
88-
)
89-
90-
训练模型.fit(训练目录, validation_data=训练目录, epochs=self.纪元)
91-
else:
92-
self.记录(信息=f"{self.图片文件} 不存在")
93-
return
94-
95-
def 加载数据(self) -> None:
96-
中药材料 = None
42+
try:
43+
if os.path.exists(self.图片文件):
44+
训练目录 :tensorflow.python.data.ops.batch_op._BatchDataset = tf.keras.utils.image_dataset_from_directory(
45+
self.图片文件,
46+
image_size=(self.图像高度, self.图像宽度),
47+
batch_size=self.批量的大小
48+
)
49+
50+
估价目录 :tensorflow.python.data.ops.batch_op._BatchDataset = tf.keras.utils.image_dataset_from_directory(
51+
self.图片文件,
52+
image_size=(self.图像高度, self.图像宽度),
53+
batch_size=self.批量的大小
54+
)
55+
56+
测试目录 :tensorflow.python.data.ops.batch_op._BatchDataset = tf.keras.utils.image_dataset_from_directory(
57+
self.图片文件,
58+
image_size=(self.图像高度, self.图像宽度),
59+
batch_size=self.批量的大小
60+
)
61+
62+
if self.展示:
63+
图表.figure(figsize=(6, 6))
64+
图表.suptitle(self.名称)
65+
66+
for 照片, 名称 in 训练目录.take(1):
67+
for in range(9):
68+
图表.subplot(3, 3, ( + 1))
69+
图表.imshow(照片[].numpy().astype("uint8"))
70+
图表.title(label=self.中药材料[名称[]], fontsize=10, color="green")
71+
图表.axis(self.)
72+
73+
if self.展示: 图表.show()
74+
75+
训练模型 = tf.keras.Sequential(
76+
[
77+
tf.keras.layers.Rescaling(1./255),
78+
tf.keras.layers.Conv2D(32, 1, activation=self.活化),
79+
tf.keras.layers.MaxPool2D(),
80+
tf.keras.layers.Conv2D(32, 1, activation=self.活化),
81+
tf.keras.layers.MaxPool2D(),
82+
tf.keras.layers.Conv2D(32, 1, activation=self.活化),
83+
tf.keras.layers.MaxPool2D(),
84+
tf.keras.layers.Flatten(),
85+
tf.keras.layers.Dense(128, activation=self.活化)
86+
]
87+
)
88+
89+
训练模型.compile(
90+
optimizer="adam",
91+
loss=tf.losses.SparseCategoricalCrossentropy(from_logits=True),
92+
metrics=["accuracy"]
93+
)
94+
95+
训练模型.fit(训练目录, validation_data=训练目录, epochs=self.纪元)
96+
97+
# print(训练模型)
98+
else:
99+
self.记录(信息=f"{self.图片文件} 不存在")
100+
except Exception as e:
101+
raise e
102+
finally:
103+
pass
97104

98105
def 记录(self, 信息: str) -> None:
99106
现在 :object = datetime.now()
@@ -102,5 +109,5 @@ def 记录(self, 信息: str) -> None:
102109
print(f"华佗AI[{目前时间}] {str(信息)}")
103110

104111
if __name__ == "__main__":
105-
huatuoAi = 华佗AI()
112+
huatuoAi = 华佗AI(展示=True)
106113
huatuoAi.训练数据()

0 commit comments

Comments
 (0)