anaconda安装keras_TF2.0的安装与MNIST手写识别的实现

9bc9e4188a4e6dee2f470aefba87f90d.png

Google前一段时间推出了TF2.0,去官网看了一下新的语法,感觉发现了新的世界,直接感受就是逻辑性强,代码简洁,容易理解,至于其他的特性我们可以以后慢慢发掘,我们先去尝试一下TF2.0,感受一下时代的潮流吧。

首先我们下载好anaconda,然后打开conda的命令行,我们为TF2.0创建虚拟环境。

0ba821f4b994c91f5cca2922d612892c.png

运行第一行的命令为TF创建一个环境,最后结果应该为下图所示:

da18bf963efa28a1038b65f5b95a6166.png

安装完环境之后我们就可以安装TF2.0了。

dd781bc4cd258093f032d8f42293b84f.png

我们先进入我们创建的虚拟环境,然后安装TF2.0

f505c4f0c533174236a23279514a75cf.png

最后完成安装:

9c57edca210a85d3f2527d0111368a10.png

在pycharm中切换为我们新创建的环境,观察是否成功:

f9d9a2bffe9a7ebf75209f22f924b5e6.png

2f460aba5997e2bf80f43487b17110df.png

953df91d475e38fd023cac6723962c78.png
点击右边的那个叹号的标志,在目录中找到anaconda的目录,去找到相应python.exe解释器

e68a2a7ae544371f23a970bdb0584e13.png

48f934072624dd123a2f8d3431f19ae9.png

选择ok,这样我们就切换到了我们新创建的环境中了

我们运行一个示例程序检查我们的环境是否成功:

2a6dcf192ae6e247c6bbb5e160e2bb3f.png

306749de8f1b7cd95d43183c2a6bdd06.png

这样就是成功的了。

如果你出现了类似的警告:

525b53dace59252b574d1d0a2620eda3.png

应该是Numpy的版本过高了,你可以尝试下面的操作将NUMPY的版本降低:

6ca4d217e98131f52b949cae2170830d.png

我们在尝试一次:

8ea8736b1239e91632536d45906e501e.png

没有了警告,完美!

好了,我们创建好了环境,就可以去实现一下深度学习中的Hello,world-MNIST手写识别了。

为了更好的与TF1.x进行比较和理解我们下面代码的含义,建议大家先简单浏览一下这篇文章:

Ysj的小迷弟:手把手教你完成卷积神经网络的“HELLO WORLD” - MNIST数字识别​zhuanlan.zhihu.com
b7115fc577c5876fc35207a05a9e2253.png

我们现在用TF2.0,搭建一个与该神经网络框架完全一样的神经网络,代码如下:

try:
    import tensorflow.python as tf
except:
    import tensorflow as tf

ds = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) =ds.load_data()
x_test,x_train = x_test.reshape((10000,28,28,1)),x_train.reshape(60000,28,28,1)
x_test,x_train = x_test/255.0,x_train/255.0
model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(20,(5,5),padding="SAME",activation="relu"),
    tf.keras.layers.MaxPool2D(2,2,padding="SAME"),
    tf.keras.layers.Conv2D(40,(5,5),padding="SAME",activation="relu"),
    tf.keras.layers.MaxPool2D(2, 2,padding="SAME"),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(512,activation="relu"),
    tf.keras.layers.Dense(10,activation="softmax")
])
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train,y_train,epochs=5)
test_loss, test_acc = model.evaluate(x_test, y_test)
print(test_loss)

简单解释一下第一行的意思,因为我们的kersa在tensorflow的python目录下,没有第一行的引入就会无法正常的提示代码,写起来很不舒服,所以用这个是为了提高我们编写代码的效率,小伙伴们可以尝试一下只用import tensorflow as tf,会知道我这么写的原因。

至于卷积神经网络的结构和我上一篇文章中的一摸一样。大家可以看的出来我们新的TF的代码无论是在逻辑性还是代码可读性上都有了巨大的提高,不需要我给出注释大家也可以明白基本的意思

有兴趣的小伙伴可以尝试着去实现一下这个代码,很简单,也非常的简洁,抓紧时间感受一下TF2.0的优势吧,我们下篇文章再见!

45e85afc8d4e4a243f79f2276cdb15f1.gif
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值