import numpy as np
import keras
import tensorflow as tf
from keras.layers import Input,Dense
from keras.models import Model
# 如果使用GPU版TensorFlow,并且在显卡高占用率的情况下训练模型,
# 那要在初始化Session时为其分配固定数量的显存,否则可能会在开始训练的时候直接报错退出
def get_session():
""" Construct a modified tf session.
"""
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
return tf.Session(config=config)
keras.backend.tensorflow_backend.set_session(get_session())
#虚拟数据
data = np.random.random((1000,784))
label = keras.utils.to_categorical(np.random.randint(10,size=(1000,1)),num_classes=10)
#输入数据层,返回一个张量
inputs = Input(shape=(784,))
#构建网络层
# 层的实例是可以调用的,它以张量为参数,并且返回一个张量
x=Dense(64,activation='relu')(inputs)
x=Dense(64,activation='relu')(x)
predictions=Dense(10,activation='softmax')(x)
#创建了一个包含输入层和三个连接层的模型
model = Model(inputs=inputs,outputs=predictions)
#配置学习参数
model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])
#训练
model.fit(data,label)