开始记录学习深度学习的点点滴滴
前言
随着人工智能的不断发展,这门技术也越来越重要,很多人都开启了学习人工智能,本人开始记录学习人工智能的点点滴滴。
一、深度学习
深度学习的概念在网上已经能够搜到很多内容了,这里主要介绍和记录以下相关可以实际运行的代码,对深度学习的实际操作进行深入理解,对出现的问题记录以下。我先从图像分类开始学习深度学习。
二、使用步骤
1. 自建网络模型
这里记录了第一个深度学习示例。
图片的搜索可以从深度学习的网站下载,这里我用scrapy爬虫爬取的。图片目录按照以下方式设置:
这里我的图片包括战斗机、直升飞机和舰船,其中战斗机文件名都为Fighter_X.jpg,直升飞机的文件名标识为Helicopter_X.jpg,舰船的飞机名标识为Ship_X.jpg。
1. 读取文件的代码如下:
import cv2
import numpy as np
import pandas as pd
import matplotlib.image as npimg
import matplotlib.pyplot as plt
import os
import random
import gc
train_dir = 'input/train' # 训练集数据
val_dir = 'input/test' # 验证集数据
test_imgs = ['input/test/{}'.format(i) for i in os.listdir(val_dir)]
train_imgs = ['input/train/{}'.format(i) for i in os.listdir(train_dir)]
random.shuffle(train_imgs) ###图片乱序,这对学习很重要。
for ima in train_imgs[0:10]:
img = npimg.imread(ima)
imgplot = plt.imshow(img)
plt.show()
nrows = 224
ncoloumns = 224
channel = 3
def read_and_process_image(list_imgs):
X = []
y = []
for image in list_imgs:
X.append(cv2.resize(cv2.imread(image,cv2.IMREAD_COLOR),(nrows,ncoloumns),interpolation=cv2.INTER_CUBIC))
if 'Fighter' in image:
y.append(0)
elif 'Helicopter' in image:
y.append(1)
return X,y
X,y = read_and_process_image(train_imgs)
plt.figure(figsize=(20,10))
columns = 5
for i in range(columns):
plt.subplot(5/columns+1,columns,i+1)
plt.imshow(X[i])```
from sklearn.model_selection import train_test_split
del train_imgs
gc.collect()
X = np.array(X)
y = np.array(y)
print("Shape of train set:", X.shape)
print("Shape of label set:"