Keras的入门

model = Sequential()
model.add(Dense(32, activation='relu', input_dim=100))
model.add(Dense(10, activation='softmax'))
model.compile(optimizer='rmsprop',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

# Generate dummy data
import numpy as np
data = np.random.random((1000, 100))
labels = np.random.randint(10, size=(1000, 1))

# Convert labels to categorical one-hot encoding
one_hot_labels = keras.utils.to_categorical(labels, num_classes=10)

# Train the model, iterating on the data in batches of 32 samples
model.fit(data, one_hot_labels, epochs=10, batch_size=32)

序号代表代码序号

1. Sequential()这个函数直接就返回一个网络对象,可不断向其中加入层,也可以初始化时就设定好。

  1. Dense()返回一个全连接层,add()就是向刚刚创建的网络对象中加入这个层,32表示输出长度,input_dim代表输入长度。

  2. 也是加入一个全连接层,但它用的激活函数是softmax,所以显然是个loss层。

  3. 在构建好网络结构后对网络使用compile()进行编译,optimizer为优化方式,loss为损失函数,metrics为评估函数,评估函数与损失函数很像,但它并不参于训练过程,即它只负责评估,其中loss与metrics都可以选择预设的和自定义。

  4. import numpy

  5. 构建一个shape为(1000,100)的虚拟样本数组。

  6. 构建一个shape为(1000,1)的虚拟标签数组,并且标签的值>=0&&<=9,因为这是一个10分类的网络。

  7. 将标签数据转换为独热向量,即0000000001,0000000010………..1000000000。

  8. 使用fit()函数进行训练,其中epochs是整个样本数据集迭代次数,batch_size是单次迭代所输入的样本数,在这里,我们需要将epochs、maximum_iterations、test_iterations、batch size这四个概念区分开来。epochs与maximum_iterations、batch size这三个概念在训练时使用,在上面这段程序中,batch size为32,epochs为10,且样本数组shape为[1000,100],这意味着样本集中有1000个样本,那么训练总共需要输入的样本数为epochs*样本集样本数=10 * 1000=10000 ,由于每次输入32个样本,则maximum_iterations为10000/32。batch size与test_iterations在测试过程中会使用到,意思分别为单次输入样本数与迭代次数。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值