1、实验平台搭建基础
Jupyter (程序编辑调试工具)
TensorFlow 2.0-机器学习框架
python Programming-- Python运行环境
2、Jupyter 使用
%config IPCompleter.greedy=True #TAB键代码自动提示
import tensorflow as tf
print(tf.__version__) #查看tf版本
Jupyter 中执行命令行: ctrl+enter 键
3、一个神经元网络的搭建
如何根据X得到Y?
例如: X= -1,0,1,2,3,4
Y=-3,-1, 1,3,5,
Y =2X-1TensorFlow 搭建模型:
#构建模型 #keras为tensorflow中的高级API
model = keras.Sequential([keras.layers.Dense(units=1,input_shape=[1])])
model.compile(optimizer='sgd ', loss='mean_squared_error ') #指定优化模型以及损失函数
model = keras.Sequential([keras.layers.Dense(units=1,input_shape=[1])])
model.compile(optimizer='sgd ', loss='mean_squared_error ') #指定优化模型以及损失函数
#准备训练数据
xs=np.array([-1.0,0.8,1.8,2.0,3.8,4.0],dtype=float)
ys=np.array([-3.0,-1.0,1.0,3.0,5.0,7.0],dtype=float)
xs=np.array([-1.0,0.8,1.8,2.0,3.8,4.0],dtype=float)
ys=np.array([-3.0,-1.0,1.0,3.0,5.0,7.0],dtype=float)
#训练模型
model.fit(xs,ys,epochs=500)
model.fit(xs,ys,epochs=500)
#使用模型
print ( model.predict( [ 10.0]))
print ( model.predict( [ 10.0]))
第二部分:机器视觉(图片分类)
2.2、加载Fashion MNIST数据集(分类衣服、鞋子等10个类别)
from tensorflow import keras
fashion_mnist = keras.datasets.fashion _mnist
(train_images, train_labels), (test_images, test_labels)=fashion_mnist.load_data() #加载数据
print(train_images.shape) #加载完查看加载的具体数据为:60000张照片,灰度为28*28
(60000,28,28)
print(train_labels.shape) #加载完查看标签加载的具体数据为:60000张照片,
(60000,)
print(train_labels[ :5]) #查看前5个标签的
[9 0 0 3 0]
import matplotlib.pyplot as plt
plt.imshow(train_images[0]) #查看图片具体什么样子
from tensorflow import keras
fashion_mnist = keras.datasets.fashion _mnist
(train_images, train_labels), (test_images, test_labels)=fashion_mnist.load_data() #加载数据
print(train_images.shape) #加载完查看加载的具体数据为:60000张照片,灰度为28*28
(60000,28,28)
print(train_labels.shape) #加载完查看标签加载的具体数据为:60000张照片,
(60000,)
print(train_labels[ :5]) #查看前5个标签的
[9 0 0 3 0]
import matplotlib.pyplot as plt
plt.imshow(train_images[0]) #查看图片具体什么样子
2.3、构造神经元网络模型#构造神经元模型
model = keras.Sequential([keras.layers.Flatten(input_shape=(28,28)), keras.layers.Dense(128,activation=tf.nn.relu),keras.layers.Dense(10,activation=tf.nn.softmax))])
import tensorflow as tf
from tensorflow import keras
import matplotlib.pyplot as plt
fashion_mnist=keras.datasets.fashion_mnist
(train_images,train_labels),(test_images, test_labels)=fashion_mnist.load_data()
model = keras.Sequential([keras.layers.Flatten(input_shape=(28,28)), keras.layers.Dense(128,activation=tf.nn.relu),keras.layers.Dense(10,activation=tf.nn.softmax))])
import tensorflow as tf
from tensorflow import keras
import matplotlib.pyplot as plt
fashion_mnist=keras.datasets.fashion_mnist
(train_images,train_labels),(test_images, test_labels)=fashion_mnist.load_data()
#搭建模型(输入、中间、输出)
model=keras.Sequential()
model.add(keras.layers.Flatten(input_shape=(28,28)))
model.add(keras.layers.Dense(128,activation=tf.nn.relu))
model.add(keras.layers.Dense(10,activation=tf.nn.softmax))
mode1.summary()
model=keras.Sequential()
model.add(keras.layers.Flatten(input_shape=(28,28)))
model.add(keras.layers.Dense(128,activation=tf.nn.relu))
model.add(keras.layers.Dense(10,activation=tf.nn.softmax))
mode1.summary()
#每一层添加了个bias (784+1)128=100480 (128+1)=1290
2.4训练和评估模型
train_images_scaled=train_images/255
model.compile(optimizer=tf.optimizers.Adam(),loss=tf.keras.losses.sparse_categorical_crossentropy,metrics=['accuracy'])
model.fit(train_images_scaled,train_labels,epochs=5)
train_images_scaled=train_images/255
model.compile(optimizer=tf.optimizers.Adam(),loss=tf.keras.losses.sparse_categorical_crossentropy,metrics=['accuracy'])
model.fit(train_images_scaled,train_labels,epochs=5)
训练结果 epoch 显示截图:
评估模型:
test_images_scaled=test_images/255
model.evaluate(test_images_scaled,test_labels)
test_images_scaled=test_images/255
model.evaluate(test_images_scaled,test_labels)
模型评估结果: