Tensorflow in Practice 系列课程代码(lesson one)

Tensorflow in Practice 1.Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning

Tensorflow in Practice 是corusera.ai 上面的一门系列课程,该课程共有4门课:

  • 1.Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning
  • 2.Convolutional Neural Networks in TensorFlow
  • 3.Natural Language Processing in TensorFlow
  • 4.Sequences, Time Series and Prediction
    获取正版课程
    小破站视频

将课程中的所有代码和练习,在这里整理一下。

  • 1.1 建立神经网络的模型的过程
    fashion_mnist 是tensorflow中的一个图片数据集,里面都是28x28x1的各种生活中常见的图片。下面建立一个全连接神经网络对其进行分类。
import tensorflow as tf
import keras

# 设置一个类,当准确度达到60%的时候就停止训练
# 回调类
class myCallback(keras.callbacks.Callback):
    def on_epoch_end(self,epoch,logs={
   }):
        print("\nReached 60% accuracy so cancelling training!")
        self.model.stop_training = True
callbacks = myCallback()

(xtrain,ytrain),(xtest,ytest) = keras.datasets.fashion_mnist.load_data()

print(xtrain.shape)
# 数据标准化
training_images=xtrain/255.0
test_images=xtest/255.0

# 建立模型结构
model = keras.Sequential()
model.add(keras.layers.Flatten(input_shape=(28,28))) # 平铺层:将28*28的数据转换为了一维的数据
model.add(keras.layers.Dense(512,activation=tf.nn.relu))
model.add(keras.layers.Dense(10,activation=tf.nn.softmax))

# 配置模型
model.compile("sgd",loss=keras.losses.sparse_categorical_crossentropy)
# 训练模型
model.fit(training_images,ytrain,epochs=5,callbacks=[callbacks])
  • 1.2 卷积神经网络
import tensorflow as tf
from keras import Sequential
from keras.layers import Dense,Flatten,Conv2D,MaxPool2D
from keras.datasets import fashion_mnist
import keras

# load data and data preprocessing
mnist = fashion_mnist
(x_train,y_train),(x_test,y_test)=mnist.load_data()

trainimage = x_train.reshape(x_train.shape[0],x_train.shape[1],x_train.shape[2],1)
trainimage = trainimage/255.0

testimage = x_test.reshape(x_test.shape[0],x_test.shape[1],x_test.shape[2],1)
testimage = testimage/255.0

print(trainimage.shape)# 最后的1,表示图片的厚度也就是颜色灰度只有1阶
print(testimage.shape)

# create model
model = Sequential([
    Conv2D(64,(3,3),activation='relu',input_shape=(28,28,1)), # 64个过滤器
    MaxPool2D(2,2), # 第一2 为滤波器的大小,第二个2为滤波器运动的步数
    Conv2D(64,(3,3),activation='relu'),
    MaxPool2D(2,2),
    Flatten(),
    Dense(128,activation='relu'),
    Dense(10,activation='softmax')
])

# set model
model.compile(optimizer='adam',loss=keras.losses.sparse_categorical_crossentropy)
model.summary()
# train model
model.fit(trainimage,y_train,epochs=5)

在这里插入图片描述
model.summary()解释:

第一层:输入数据维度为(28,28,1),滤波器个数64个,滤波器大小为(3,3),输出的大小为: [ n + 2 p − f s ] + 1 × [ n + 2 p − f s ] + 1 = 28 + 0 − 3 1 + 1 × 28 + 0 − 3 1 + 1 = 26 × 26 [\frac{n+2p-f}{s}]+1 \times [\frac{n+2p-f}{s}]+1=\frac{28+0-3}{1}+1 \times \frac{28+0-3}{1}+1=26 \times 26 [sn+2pf]+1×[sn+2pf]+1=128+03+1×128+0

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值