Keras入门必读教程:手把手从安装到解决实际问题
导读:Keras是目前深度学习研究领域非常流行的框架。
允许研究人员快速搭建原型设计。 支持深度学习中最流行的卷积神经网络与循环神经网络,以及它们两者的组合。 可以在CPU与GPU上无缝运行。
from tensorflow import keras
$ sudo pip install git+https://www.github.com/keras-team/keras-contrib.git
$ pip install tensorflow-addons
from tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Dense, Activation
model = Sequential([Dense(32, input_shape=(784,)),Activation('relu'),Dense(10),Activation('softmax'),])
model = Sequential()
model.add(Dense(32,input_dim=784))
model.add(Activation('relu'))
import numpy as npfrom tensorflow.keras.models import Sequential from tensorflow.keras.layers import Densedata = np.random.random((1000,100))labels = np.random.randint(2,size=(1000,1))model = Sequential()model.add(Dense(32,activation='relu', input_dim=100))model.add(Dense(1, activation='sigmoid'))model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy'])model.fit(data,labels,epochs=10,batch_size=32)predictions = model.predict(data)
import numpy as np
from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten
from tensorflow.keras.layers import Conv2D, MaxPooling2D
from tensorflow.keras.optimizers import SGD
x_train = np.random.random((100, 100, 100, 3))y_train = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)),num_classes=10)x_test = np.random.random((20, 100, 100, 3))y_test = keras.utils.to_categorical(np.random.randint(10, size=(20, 1)),num_classes=10)
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(100, 100, 3)))
model.add(Conv2D(32, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)model.compile(loss='categorical_crossentropy', optimizer=sgd)model.fit(x_train, y_train, batch_size=32, epochs=10)score = model.evaluate(x_test, y_test, batch_size=32)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense,Embedding,LSTM
model = Sequential()
model.add(Embedding(20000,128))
model.add(LSTM(128,dropout=0.2,recurrent_dropout=0.2))
model.add(Dense(1,activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])model.fit(x_train, y_train, batch_size=32, epochs=15, verbose=1, validation_data=(x_test,y_test))score = model.evaluate(x_test, y_test, batch_size=32)
model.save('./model')
from tensorflow.keras.models import load_modelmy_model = load_model('./model')
from __future__ import print_function
from tensorflow.keras.preprocessing import sequence
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Embedding, LSTM
from tensorflow.keras.datasets import imdb
max_features = 20000maxlen = 80batch_size = 32
(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=max_features)x_train = sequence.pad_sequences(x_train, maxlen=maxlen)x_test = sequence.pad_sequences(x_test, maxlen=maxlen)
model = Sequential()
model.add(Embedding(max_features, 128))
model.add(LSTM(128, dropout=0.2, recurrent_dropout=0.2))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy',optimizer='adam',
metrics=['accuracy'])
model.fit(x_train, y_train,batch_size=batch_size,epochs=15,validation_data=(x_test, y_test))score, acc = model.evaluate(x_test, y_test,batch_size=batch_size)print('Test score:', score)print('Test accuracy:', acc)
关于作者:史丹青,语忆科技联合创始人兼技术负责人,毕业于同济大学电子信息工程系。拥有多年时间的AI领域创业与实战经验,具备深度学习、自然语言处理以及数据可视化等相关知识与技能。是AI技术的爱好者,并拥抱一切新兴科技,始终坚信技术分享和开源精神的力量。