学习keras1

"""使用keras搭建神经网络"""
from keras.models import Sequential
import pandas as pd
#Sequential是一系列网络层按照顺序构成的栈
model = Sequential()
from keras.layers.core import Dense,Dropout,Activation
from keras.optimizers import SGD, Adadelta, Adagrad, RMSprop
import os
from  PIL import Image
import numpy as np
import torch as t
#Dense 简单理解为全连接神经元的个数为512
#如果是文本数据集   更适合循环神经网络  ,LSTM等
#简单的加载方法
data=pd.read_csv('')
datatest=pd.read_csv('')
x_train=data.xdata
y_train=data.ydata
x_test =datatest.xdata
y_test =datatest.ydata
#如果是图片数据集 更适合卷积神经网络
#加载方法
class DogCat(data.Dataset):
    def __init__(self,root):
            imgs = os.listdir(root)
            self.imgs = [os.path.join(root,img) for img in imgs]
    def __getitem__(self, index):
            img_path = self.imgs[index]
            y_train = 1 if 'dog' in img_path.split('/')[-1] else 0
            pil_img = Image.open(img_path)
            array = np.asarray(pil_img)
            x_train = t.from_numpy(array)
            return x_train,y_train




model.add(Dense(512,input_shape=(784,)))
#激活函数使用relu
model.add(Activation('relu'))
#Dropout 防止过拟合的一种方式
model.add((Dropout(0,2)))

model.add(Dense(512))
model.add(Activation('relu'))
model.add((Dropout(0,2)))

model.add(Dense(10))
model.add(Activation('softmax'))
#打印模型
model.summary()
#使用随机梯度下降算法
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
#compile  接收  loss    optimizer    metrics 三个参数
model.compile(loss='categorical_crossentropy',optimizer=sgd,metrics=['accuracy'])
history = model.fit(x_train,y_train,batch_size=3,nb_epoch=10,verbose=1,validation_data=(x_test,y_test))



# print('--------------------------------------------------')
# import json
#
# with open("config.json", 'r') as f:
#     result = json.load(f)
#     print(result)

猜你喜欢

转载自blog.csdn.net/qq_37879432/article/details/80357116
今日推荐