实例:通过imdb的评价数据来分析电影的好坏。
套路:
1. 预处理数据
2. 建立网络模型(层数、每层节点数、激活函数)
3. 选取损失函数、优化器,训练轮次及批量大小
4. 使用训练集训练模型
5. 根据训练结果调整2、3
6. 使用校验集校验模型
7. 根据校验结果调整2、3
8. 使用测试集预测结果
9. 根据测试结果调整2、3
10. 最终获得满意的模型:)
最终的代码很简单,技术红利时代,造就了技术人员的层次天壤之别。
加载数据
from keras.datasets import imdb
(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)
预处理数据,主要是把训练及测试数据从出现单词的编码向量,转化为单词是否出现的0/1向量
比如有条评价是:good movie 对应词典中的索引是93, 103,那么最初的向量是[93,103] 这样的向量会根据评价的内容长度不同,不能满足深度学习网络输入数据的需要。一种转变方式就是,用10000个高频单词是否出现来表示,good movie就可以转变为[0,0,0...1,0,0...,1,0,0...]第93和103是1,其他9998个元素都是0
import numpy as np
def vectorize_sequences(sequences, dimension=10000):
results = np.zeros((len(sequences), dimension))
for i, sequence in enumerate(sequences):
results[i, sequence] = 1.
return results
x_train = vectorize_sequences(train_data)
x_test = vectorize_sequences(test_data)
y_train = np.asarray(train_labels).astype('float32')
y_test = np.asarray(test_labels).astype('float32')
预处理过的数据就可以送入网络中进行学习了。先构建网络模型:1个输入、1个隐藏、1个输出,输入和隐藏层都是16个元素
隐藏层数和元素个数搜视『凭经验』选择的,根据训练结果==不断优化。激活函数是RELU(Rectified Linear Unit,修正线性单元)是最常用的激活函数。最后输出层采用sigmodid,将输出转化为0-1之间的数值,表示概率值。
from keras import models
from keras import layers
model = models.Sequential()
model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))
model.add(layers.Dense(16, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid')
接下来选择损失函数和优化器,并选择评估标准。这里可以选择karas自带的,也可以自定义优化器和损失函数。
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
训练及验证模型,这里训练4轮次,批量大小为512个样本
history = model.fit(partial_x_train,
partial_y_train,
epochs=4,
batch_size=512,
validation_data=(x_val, y_val))
单独验证
results = model.evaluate(x_test, y_test)
预测
model.predict(x_test)
相关知识
AI照片编辑工具,Pic Pic AI编辑器
《Ai Vpet
AI For Good
AI Pet Photos
从AI玩具到AI家居安全:探索AI技术在宠物智能化领域的应用
宠AI计划
Ai宠物照片
ai宠物视频效果怎么样AI能用来做配音吗
ai萌宠视频具体操作教程,有AI配音软件吗
AI制作——宠物黑猫
网址: AI https://m.mcbbbk.com/newsview284110.html
上一篇: 共绘温馨画卷:宠物与人类的和谐共 |
下一篇: 淮南养狗基地 |