日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 卷积神经网络 >内容正文

卷积神经网络

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

發(fā)布時間:2024/9/15 卷积神经网络 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习-Tensorflow2.2-卷积神经网络{3}-电影评论数据分类/猫狗数据集实例-15 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

電影評論數(shù)據(jù)分類

import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers data = keras.datasets.imdb # 導入電影評論數(shù)據(jù)

數(shù)據(jù)預處理

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() # 輸入數(shù)據(jù)的維度長度最大為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個單元激活函數(shù)relu model.add(layers.Dropout(0.5))# 添加dropout層抑制過擬合 model.add(layers.Dense(1,activation="sigmoid"))# 輸出一個單元,二分類問題使用sigmoid函數(shù)激活 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))


貓狗數(shù)據(jù)集實例

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/數(shù)據(jù)集/貓狗數(shù)據(jù)集/dc/train/*.jpg") # 獲取train數(shù)據(jù)所有圖片的路徑 dataset_test = glob.glob("F:/py/ziliao/數(shù)據(jù)集/貓狗數(shù)據(jù)集/dc/test/*.jpg") # 獲取test數(shù)據(jù)所有圖片的路徑 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 # 處理圖片函數(shù) 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() # 不填參數(shù)一直循環(huán) dataset = dataset.batch(32) dataset test_dataset = test_dataset.map(_pre_read) test_dataset = test_dataset.shuffle(300) test_dataset = test_dataset.repeat() # 不填參數(shù)一直循環(huán) test_dataset = test_dataset.batch(32) test_dataset # CNN優(yōu)化增加卷積層及抑制擬合:增大測試訓練集隱藏單元數(shù)增大擬合,降低抑制數(shù)據(jù)擬合# 建立模型 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。