ITPub博客

首页 > 人工智能 > 人工智能 > 人工智能-Keras 基于 Python 的深度学习库

人工智能-Keras 基于 Python 的深度学习库

原创 人工智能 作者:xiaomajia 时间:2020-05-02 14:37:26 0 删除 编辑


Keras 是一个用 Python 编写的高级神经网络 API,它能够以CNTK, Theano或 TensorFlow 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。

指导原则:

用户友好。 Keras 是为人类而不是为机器设计的 API。它把用户体验放在首要和中心位置。Keras 遵循减少认知困难的最佳实践:它提供一致且简单的 API,将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。

模块化。 模型被理解为由独立的、完全可配置的模块构成的序列或图。这些模块可以以尽可能少的限制组装在一起。特别是神经网络层、损失函数、优化器、初始化方法、激活函数、正则化方法,它们都是可以结合起来构建新模型的模块。

易扩展性。 新的模块是很容易添加的(作为新的类和函数),现有的模块已经提供了充足的示例。由于能够轻松地创建可以提高表现力的新模块,Keras 更加适合高级研究。

基于 Python 实现。 Keras 没有特定格式的单独配置文件。模型定义在 Python 代码中,这些代码紧凑,易于调试,并且易于扩展。

Keras 兼容的 Python 版本:  Python 2.7-3.6。


安装日志:


我用的环境是 python 3.5.2,AnaConda 4.5.11,建议一定使用conda安装,会省很多事。如果你喜欢挑战,那就用pip试一下。

命令:conda install keras ,具体执行效果如下:

我后端安装的是Tensorflow,使用的是K+T的组合。


基于该环境做了一例子:

Multilayer Perceptron (MLP) for multi-class softmax classification:

import keras

from keras.models import Sequential

from keras.layers import Dense, Dropout, Activation

from keras.optimizers import SGD


# Generate dummy data

import numpy as np

x_train = np.random.random((1000, 20))

y_train = keras.utils.to_categorical(np.random.randint(10, size=(1000, 1)), num_classes=10)

x_test = np.random.random((100, 20))

y_test = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=10)


model = Sequential()

# Dense(64) is a fully-connected layer with 64 hidden units.

# in the first layer, you must specify the expected input data shape:

# here, 20-dimensional vectors.

model.add(Dense(64, activation='relu', input_dim=20))

model.add(Dropout(0.5))

model.add(Dense(64, 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,

metrics=['accuracy'])


model.fit(x_train, y_train,

epochs=20,

batch_size=128)

score = model.evaluate(x_test, y_test, batch_size=128)

系统会提示了一个错误:

Message=softmax() got an unexpected keyword argument 'axis'

针对该问题, 是因为keras和tensorflow的版本匹配问题,基本匹配表是:

我安装的Tensorflow版本是 1.2.1, keras是最新版本

重新安装2.0.6,conda没找到,然后安装2.0.8

升级完成后遇到新问题:

module 'pandas' has no attribute 'computation'

更新dask,如下:

重新运行上面的例子

Multilayer Perceptron (MLP) for multi-class softmax classification:

结果如下:


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/61939/viewspace-2689705/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
从事信息化工作20年,记录生活和工作中的思考和实践,希望能够给您带来一点点的价值。微信公众号:guszhang02

注册时间:2020-03-28

  • 博文量
    33
  • 访问量
    26252