电影评论数据分类

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
data = keras.datasets.imdb  # 导入电影评论数据

数据预处理

max_word = 10000 # 限制索引序号最大到10000
(x_train,y_train),(x_test,y_test) = data.load_data(num_words=max_word)
x_train.shape,y_train.shape,x_test.shape,y_test.shape

x_train[0]

data.get_word_index() # 查看序号对应的单词


处理文本的方法:把文本训练成密集向量

# 查看所有评论的长度
[len(x) for x in x_train]

x_train = keras.preprocessing.sequence.pad_sequences(x_train,300) # 把每条文本的特征值长度处理成300少的填充,多的剔除
x_test = keras.preprocessing.sequence.pad_sequences(x_test,300)
# 查看所有评论的长度
[len(x) for x in x_train]

y_train # 目标值不需要处理(通过目标值可以看出这是个二分类问题)

# 建立模型
model = keras.models.Sequential()
# 输入数据的维度长度最大为10000个单词,映射成长为50的向量,输入最大的序号为300
model.add(layers.Embedding(10000,50,input_length=300))
# 把文本训练成密集向量 形状25000,300,50
# model.add(layers.Flatten()) # 把上面 25000,300,50的三维变成一个二维的形状
model.add(layers.GlobalAveragePooling1D()) # 使用全局池化改变形状
model.add(layers.Dense(128,activation="relu"))# 输出128个单元激活函数relu
model.add(layers.Dropout(0.5))# 添加dropout层抑制过拟合
model.add(layers.Dense(1,activation="sigmoid"))# 输出一个单元,二分类问题使用sigmoid函数激活
model.summary()

# 编译模型
model.compile(optimizer=tf.keras.optimizers.Adam(lr=0.001),loss = "binary_crossentropy",metrics=["acc"])
# 训练模型
history = model.fit(x_train,y_train,epochs=15,batch_size=256,validation_data=(x_test,y_test))


猫狗数据集实例

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
import numpy as np
import glob
image_filenames = glob.glob("F:/py/ziliao/数据集/猫狗数据集/dc/train/*.jpg") # 获取train数据所有图片的路径
dataset_test = glob.glob("F:/py/ziliao/数据集/猫狗数据集/dc/test/*.jpg") # 获取test数据所有图片的路径
image_filenames = np.random.permutation(image_filenames) # 对图片进行乱序
lables = list(map(lambda x: float(x.split("\\")[1].split(".")[0] == "cat"),image_filenames))
dataset = tf.data.Dataset.from_tensor_slices((image_filenames, lables))
dataset
lables_test = list(map(lambda x: float(x.split("\\")[1].split(".")[0] == "cat"),dataset_test))
test_dataset = tf.data.Dataset.from_tensor_slices((dataset_test, lables_test))
test_dataset
# 处理图片函数
def _pre_read(img_filename, lable):image = tf.io.read_file(img_filename)image = tf.image.decode_jpeg(image, channels=3)image = tf.image.resize(image, (200, 200))image = tf.reshape(image, [200, 200, 3])image = tf.image.per_image_standardization(image)return image, lable
dataset = dataset.map(_pre_read)
dataset = dataset.shuffle(300)
dataset = dataset.repeat() # 不填参数一直循环
dataset = dataset.batch(32)
dataset
test_dataset = test_dataset.map(_pre_read)
test_dataset = test_dataset.shuffle(300)
test_dataset = test_dataset.repeat() # 不填参数一直循环
test_dataset = test_dataset.batch(32)
test_dataset
# CNN优化增加卷积层及抑制拟合:增大测试训练集隐藏单元数增大拟合,降低抑制数据拟合# 建立模型
model = tf.keras.Sequential()
model.add(tf.keras.layers.Conv2D(64,(3,3),input_shape=(200,200,3),activation="relu",padding="same"))
model.add(tf.keras.layers.Conv2D(64,(3,3),activation="relu",padding="same"))
model.add(tf.keras.layers.Conv2D(64,(3,3),activation="relu",padding="same"))
model.add(tf.keras.layers.MaxPool2D())model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Conv2D(128,(3,3),activation="relu",padding="same"))
model.add(tf.keras.layers.Conv2D(128,(3,3),activation="relu",padding="same"))
model.add(tf.keras.layers.MaxPool2D())model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Conv2D(256,(3,3),activation="relu",padding="same"))
model.add(tf.keras.layers.Conv2D(256,(3,3),activation="relu",padding="same"))
model.add(tf.keras.layers.MaxPool2D())model.add(tf.keras.layers.GlobalAveragePooling2D())
model.add(tf.keras.layers.Dense(256,activation="relu"))
model.add(tf.keras.layers.Dense(1,activation="sigmoid"))
model.summary()
# 编译模型
model.compile(optimizer="adam",loss="binary_crossentropy",metrics=["acc"])
# 训练模型
history = model.fit(dataset,epochs=10,steps_per_epoch=781,validation_data=test_dataset,validation_steps=781)

深度学习-Tensorflow2.2-卷积神经网络{3}-电影评论数据分类/猫狗数据集实例-15相关推荐

  1. 深度学习-Tensorflow2.2-卷积神经网络{3}-卷积神经网络CNN基础-11

    CNN 简介 实现对图像的高准确率识别离不开一种叫做卷积神经网络的深度学习 技术. 卷积神经网络主要应用于计算机视觉相关任务,但它能处理的任务并 不局限于图像,其实语音识别也是可以使用卷积神经网络. ...

  2. 深度学习21天——卷积神经网络(CNN):天气识别(第5天)

    目录 一.前期准备 1.1 设置GPU 1.2 导入数据 1.2.1 np.random.seed( i ) 1.2.2 tf.random.set_seed() 1.3 查看数据 二.数据预处理 2 ...

  3. 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP

    原文地址可以查看更多信息 本文主要参考于:Multilayer Perceptron  python源代码(github下载 CSDN免费下载) 本文主要介绍含有单隐层的MLP的建模及实现.建议在阅读 ...

  4. 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-03-基于Python的LeNet之LR

    原地址可以查看更多信息 本文主要参考于:Classifying MNIST digits using Logistic Regression  python源代码(GitHub下载 CSDN免费下载) ...

  5. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(1)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  6. 深度学习21天——卷积神经网络(CNN):实现mnist手写数字识别(第1天)

    目录 一.前期准备 1.1 环境配置 1.2 CPU和GPU 1.2.1 CPU 1.2.2 GPU 1.2.3 CPU和GPU的区别 第一步:设置GPU 1.3 MNIST 手写数字数据集 第二步: ...

  7. 深度学习算法中卷积神经网络的应用

    下面一起来探讨一下关于深度学习算法中卷积神经网络的基本概念和应用: 1.卷积神经网络基本概念 卷积神经网络也是在传统人工神经网络的基础上发展起来的,它与 BP 神经网络有很大的相似之处,但也有很大的区 ...

  8. [人工智能-深度学习-33]:卷积神经网络CNN - 常见分类网络- LeNet网络结构分析与详解

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  9. 记录|深度学习100例-卷积神经网络(CNN)彩色图片分类 | 第2天

    记录|深度学习100例-卷积神经网络(CNN)彩色图片分类 | 第2天 1. 彩色图片分类效果图 数据集如下: 测试图1如下 训练/验证精确图如下: 优化后:测试图--打印预测标签: 优化后:测试图- ...

最新文章

  1. 为什么Kubernetes的存储如此艰难?
  2. [cocos2d-x]cocos2d和cocos2d-x的一些通用性
  3. 线程在Linux中的实现
  4. Interview:算法岗位面试—11.19早上上海某银行(总行,四大行之一)信息技术岗面试记录
  5. python 列表比较不同_使用Python中的自定义比较功能对列表进行排序
  6. 清华网红自行车火了!背后是登在《自然》上的黑科技
  7. [解题报告]Codeforces 105D Entertaining Geodetics
  8. 简用计算机,你真的会使用“计算器”吗?
  9. 【Flutter】基础组件【02】Container
  10. python程序员专用壁纸_Python程序员必用的电脑桌面
  11. PNP三极管限流电路分析
  12. java类加载机制之类加载过程、类加载器及双亲委派模型详解
  13. 旧项目归档:旅游年卡-旅游直通车-微信二级分销推广会员-汽车租赁-金币提现-司机乘务管理-景点线路乘车预约
  14. cadence 617工艺库安装以及相关问题解决
  15. 好用的报表工具有哪些?
  16. Centos7 出现xxx不在sudoers文件中的解决方案
  17. cuBLAS使用(4)
  18. 如何高效学习python
  19. window10快速关机小技巧(超级简单)
  20. XENAPP 7.6 和XENDESKTOP 7.6 初体验之一 安装

热门文章

  1. python连接oracle视频教程_python怎么连接oracle
  2. php编程实现单入口,apache配置php实现单一入口方法
  3. dede linux下oss上传问题
  4. 数据库设计与开发概述
  5. jQuery的链式操作
  6. oracle删除后电脑卡,彻底删除oracle服务 -电脑资料
  7. 中科院计算机跨专业考研,2015考研复试:往届生和跨专业考生
  8. 皁新哪学计算机好,北京科技大学计算机基础模拟AB .doc
  9. linux内核配置参考,[转]Linux内核配置选项 参考(3)
  10. 摄像头poe供电原理_弱电知识之六:跟我学做监控,认识POE交换机与POE监控摄像头...