keras 学习第一天

windows10 +anaconda+gtx 1050ti+keras 2.2.4+tensorflow1.8

keras中文文档

首先,安装keras ,打开anaconda prompt,进入界面,pip3 install keras ,就可以

然后检查一下你的keras  的backend是什么,打开python,import keras,输出Using TensorFlow(Theano) backno.由于我的backno直接就是tensorflow,本身电脑输出就是tensorflow,倘若你这里的backno和你所想要的backno是不匹配的,那么,请修改他,教程另找,不做赘述。

学习keras中文文档

由于中文文档中,keras的版本是2.0.9,期间如果遇到有不同的地方,我会注明

第一天是keras 的介绍部分

keras是由纯python编写的,并基于tensorflow,Theano以及CNTK,这里是基于tensorflow的。

相比于纯tensorflow时复杂的代码,keras以其简便的操作性,虽然是以效率性作为牺牲。其简便性主要是建立在keras的模块性。其模块主要有,layers,损失函数,优化器,激活函数,初始化策略和正则化

目前,据我所目前学习情况,keras搭建神经网络主要的套路和tensorflow时差不多

数据>搭建模型>编译模型(model.compile(loss,optimiser,metric))>训练(model.fit(x_train,y_train,epoch,batch_size)>测试(model.evelute(x_test,y_test))得到loss和accuracy

我认为,keras学习其主要学习
搭建模型,需要对 神经网络的了解,比如在什么时候选择什么样的layer,以及选择什么样的模式,Sequential还是函数形模式。

模型编译,选择什么样的损失函数和优化器

训练,迭代次数和,epoch,训练数据将被伦多少次,batch一次输入多少数据,

(一家之言)

注意到这边的keras.json的内容是

{ "floatx": "float32",

"epsilon": 1e-07,

"backend": "tensorflow",

"image_data_format": "channels_last" }

表示image_data_format是channels_last,那么表示100张3通道的28*32的彩色图片,表示为(100,28,32,3),28宽。

下面是我用keras搭建的神经网络,数据库是mnist,两层卷积,两层池化,两层全连接,手写数字识别,其正确率是loss: 0.3263 - acc: 0.9189

import numpy as np
np.random.seed(1337)
from keras.datasets import mnist
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense,Activation,Convolution2D,MaxPooling2D,Flatten
from keras.optimizers import Adam
#mnist数据的导入
(X_train,Y_train),(X_test,Y_test) = mnist.load_data()
#将数据进行一定量的调整
X_train=X_train.reshape(-1,1,28,28)
X_test = X_test.reshape(-1,1,28,28)
#构建热图
Y_train = np_utils.to_categorical(Y_train,num_classes=10)
Y_test = np_utils.to_categorical(Y_test,num_classes=10)
#搭建模型
model = Sequential([
	Convolution2D(nb_filter=32,nb_row=5,nb_col=5,border_mode='same',input_shape=(1,28,28)),
	Activation('relu'),
	MaxPooling2D(pool_size=(2,2),strides=1,border_mode='same'),
	Convolution2D(64,5,5,border_mode='same'),
	Activation('relu'),
	MaxPooling2D((2,2),border_mode ='same'),
	Flatten(),
	Dense(1024),
	Activation("relu"),
	Dense(10),
	Activation("softmax")


])
#编译模型
adam = Adam(lr=1e-4)
model.compile(optimizer=adam,loss='categorical_crossentropy',metrics=['accuracy'])


print("Training-----------------------")
#训练
model.fit(X_train,Y_train,nb_epoch=1,batch_size=32)
print("Testing------------------------")
#测试
loss,accuracy=model.evaluate(X_test,Y_test)
print("loss:",loss)
print("accuracy: ",accuracy)

猜你喜欢

转载自blog.csdn.net/weixin_40085833/article/details/83109707
今日推荐