Skip to content

Commit a70713f

Browse files
committed
更新逻辑
1 parent 731e4ec commit a70713f

4 files changed

Lines changed: 134 additions & 3 deletions

File tree

.vscode/launch.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
// 使用 IntelliSense 了解相关属性。
3+
// 悬停以查看现有属性的描述。
4+
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"name": "Python: 当前文件",
9+
"type": "python",
10+
"request": "launch",
11+
"program": "${file}",
12+
"console": "integratedTerminal",
13+
"justMyCode": true
14+
}
15+
]
16+
}

Readme.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,11 @@ HuaTuoAI/
115115
### 用法
116116

117117
```bash
118-
python3 main.py
118+
python3 tensorflow/run.py
119+
```
120+
121+
```bash
122+
python3 pytorch/run.py
119123
```
120124

121125
### 以下是使用 chinese_medicine.h5 二进制文件进行程序演示的示例,以及输出结果:

main.py renamed to old_run.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,15 @@
1919
from keras.layers import Conv2D, MaxPooling2D
2020
from keras.layers import Activation, Dropout, Flatten, Dense
2121
from keras import backend as _keras
22-
except:
22+
except ImportError:
2323
raise "🥹无法安装配件"
24-
24+
finally:
25+
pass
2526

2627
class HuaTuoAI:
2728
def __init__(self):
29+
assert tf.__version__.startswith("2")
30+
2831
self.chinese_medicine_url: str = "https://raw.githubusercontent.com/johnmelodyme/HuaTuoAI/main/data/chinese_medicine.txt"
2932
self.image_data: str = "https://github.com/johnmelodyme/HuaTuoAI/releases/download/images/images.zip"
3033
self.image_width: int = 224
@@ -132,6 +135,8 @@ def train(self) -> None:
132135
)
133136

134137
try:
138+
139+
135140
self.model.save_weights("chinese_medicine{}".format(self.binary_extension))
136141
self.log(msg="😇训练模型保存为《chinese_medicine.h5》")
137142
self.convert_to_tflite()

run.py

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# -*- coding: UTF-8 -*-
2+
try:
3+
import os
4+
import tensorflow as tf
5+
import numpy as np
6+
import matplotlib
7+
import matplotlib.pyplot as 图表
8+
from typing import Tuple
9+
from datetime import datetime
10+
except ImportError:
11+
raise "🥹无法安装配件"
12+
finally:
13+
pass
14+
15+
class 华佗AI:
16+
def __init__(self) -> None:
17+
super(华佗AI, self).__init__()
18+
19+
matplotlib.rcParams["font.family"] = "Heiti TC"
20+
21+
self.图片文件 = "./data/images/"
22+
self.seed :int = 21
23+
self.图像高度 :int = 32
24+
self.图像宽度 :int = 32
25+
self.批量的大小 :int = 20
26+
self. :str | None = "off"
27+
self.活化 :str | None = "relu"
28+
self.中药材料 :list | any = [
29+
"丁公藤",
30+
"金银花",
31+
"罗汉果",
32+
"人参片"
33+
]
34+
self.优化器 :str | None = "adam"
35+
self.纪元 :int = 10
36+
37+
def 训练数据(self) -> None:
38+
self.记录(信息="TensorFlow 版本 |> {}".format(tf.__version__))
39+
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
97+
98+
def 记录(self, 信息: str) -> None:
99+
现在 :object = datetime.now()
100+
目前时间 :object = 现在.strftime("%H:%M:%S")
101+
102+
print(f"华佗AI[{目前时间}] {str(信息)}")
103+
104+
if __name__ == "__main__":
105+
huatuoAi = 华佗AI()
106+
huatuoAi.训练数据()

0 commit comments

Comments
 (0)