代码解析
导入包
import tensorflow as tf
from tensorflow import keras
import random
import numpy as np
随机创建数据
data=[]
label=[]
for i in range(500):
num=random.randrange(1,10)
whiteboard=np.zeros(shape=9)
whiteboard[num-1]=1
data.append(whiteboard)
label.append(whiteboard)
更改数据格式
data=np.array(data)
label=np.array(label)
参数设置
log_dir = './logs'
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
搭建网络
inputs = keras.layers.Input(shape=(9,))
x = keras.layers.Dense(64, activation='relu')(inputs)
x = keras.layers.Dense(64, activation='relu')(x)
predictions = keras.layers.Dense(9, activation='softmax')(x)
model = keras.models.Model(inputs=inputs, outputs=predictions)
model.compile(optimizer='sgd',loss=tf.keras.losses.CategoricalCrossentropy() )
训练模型
print("================开始训练======================")
model.fit(data, label,epochs=100,verbose=1,callbacks=[tensorboard_callback])
预测
print("================开始预测======================")
for i in range(10):
num=random.randrange(0, 499)
real_num=np.argmax(data[num])+1
input=data[num]
predict=np.argmax(model.predict(np.expand_dims(input, axis=0))) + 1
print("predict num is %d ,real num is %d"% (predict,real_num))
整体代码
import tensorflow as tf
from tensorflow import keras
import random
import numpy as np
data=[]
label=[]
for i in range(500):
num=random.randrange(1,10)
whiteboard=np.zeros(shape=9)
whiteboard[num-1]=1
data.append(whiteboard)
label.append(whiteboard)
data=np.array(data)
label=np.array(label)
log_dir = './logs'
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
inputs = keras.layers.Input(shape=(9,))
x = keras.layers.Dense(64, activation='relu')(inputs)
x = keras.layers.Dense(64, activation='relu')(x)
predictions = keras.layers.Dense(9, activation='softmax')(x)
model = keras.models.Model(inputs=inputs, outputs=predictions)
model.compile(optimizer='sgd',loss=tf.keras.losses.CategoricalCrossentropy() )
print("================开始训练======================")
model.fit(data, label,epochs=100,verbose=1,callbacks=[tensorboard_callback])
print("================开始预测======================")
for i in range(10):
num=random.randrange(0, 499)
real_num=np.argmax(data[num])+1
input=data[num]
predict=np.argmax(model.predict(np.expand_dims(input, axis=0))) + 1
print("predict num is %d ,real num is %d"% (predict,real_num))
快速使用
安装环境
conda create -n csdn1 python=3.8
source activate csdn1
conda install numpy
conda install pandas
conda install scipy
conda install matplotlib
conda install jupyter
conda install opencv
conda install tensorflow
conda install autopep8
运行文件
python net.py
工具1
用网页管理文件
jupyter notebook
工具2
用网页打开可视化工具
tensorboard --logdir=/home/dami/Desktop/net/logs
将返回的网址用浏览器打开