因学习需要用到keras,通过查找较多资料最终完成Anaconda、TensorFlow和Keras的简单安装。因为网上的相关资料较多但大部分不够全面,查找起来不太方便,因此自己记录一下成功下载安装的详细过程,顺便推荐一下借鉴的写的很好的相关教程文章。
keras需要在TensorFlow之上才能运行,所以要先安装TensorFlow ,而TensorFlow只能在3.7以前的python版本中运行,所以需要先创建一个基于python 3.6的虚拟环境,因此便需要先下载Anaconda。
一、Anaconda3下载和安装
Anaconda下载安装教程原文链接:https://blog.csdn.net/wq_ocean_/article/details/103889237
博主写的很详细。
Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等
因此安装Anaconda的好处主要为以下几点:
1)包含conda:conda是一个环境管理器,其功能依靠conda包来实现,该环境管理器与pip类似,那有童鞋会问了:我能通过pip装conda包达到conda环境管理器一样的功能吗?答案是不能,conda包的实现离不开conda环境管理器。想详细知道两者异同可以去知乎遛一遛https://www.zhihu.com/question/279152320
2)安装大量工具包:Anaconda会自动安装一个基本的python,该python的版本Anaconda的版本有关。该python下已经装好了一大堆工具包,这对于科学分析计算是一大便利,你愿意费时耗力使用pip一个个包去装吗?
3)可以创建使用和管理多个不同的Python版本:比如想要新建一个新框架或者使用不同于Anoconda装的基本Python版本,Anoconda就可以实现同时多个python版本的管理。
注:Anaconda3下载在官网下载比较慢,而且容易断,推荐用下面清华镜像方式:
下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
根据需要下载对应版本。
更新conda和所有包的过程较长,而且网络会对更新过程造成影响,我个人安装Anaconda的时候暂未进行更新,这里可能导致某些问题。
二、TensorFlow下载和安装
TensorFlow只能在3.7以前的python版本中运行,所以需要先创建一个基于python 3.6的虚拟环境,旧版本的python可以卸载也可以不卸载(参考Anaconda下载安装介绍方法)。
参考文章教程原文链接:
TensorFlow和Keras安装教程_TensorFlow安装Keras_你是认真的吗...的博客-CSDN博客
简洁的keras安装方法_keras下载安装教程_m0_37575524的博客-CSDN博客
打开Anaconda Prompt(先下载Anaconda3)
Anaconda Prompt常用语句:
1.查看存在的环境:conda info -e
2.创建新环境:conda create --name 环境名 python=(python的版本号)
3.切换到某个环境:conda activate 环境名
4.查看环境中已安装的包:conda list
5.在环境中安装包:pip install 包名
6.删除包:pip unstall 包名
7.删除环境:conda env remove -n 环境名
新建一个python3.6环境(不建议用自带的base)
#创建虚拟环境名conda create -n TensorFlow_py python=3.6#查看已创建环境conda info --envs#切换到创建的环境中conda activate TensorFlow_py
当命令行前缀(base)变成对应的环境名(TensorFlow_py)时成功切换环境,在该环境下输入python
#命令行输入python检查当前python版本,显示>>>表示成功安装,可直接输入python命令python#进入python>>>exit() #输入该命令退出python
(其中python3.6版本文件会安装在Anaconda的\envs\TensorFlow_py\文件夹下)
安装TensorFlow
打开Anaconda Prompt后输入以下命令下载更新pip
python -m pip install --upgrade pip
因为Keras搭建在TensorFlow基础上,在安装Keras安装之前需要安装numpy、matplotlib、scipy等工具包,可直接pip下载也可使用清华镜像网下载安装相关的python模块包。
#清华镜像下载较快pip install -i https://pypi.tuna.tsinghua.edu.cn/simple +包名 #直接下载模块包pip install +包名 #卸载包pip uninstall +包名
在上述TensorFlow_py环境下打开python,输入import+包名,未报错则成功安装模块包
安装TensorFlow2.0.0(可自己选择安装的版本,修改版本号即可)
pip install TensorFlow==2.0.0
注:因为Keras一定要和下载的TensorFlow版本匹配,所以后续下载Keras要注意看下载的是哪个版本
部分版本对应图如下:
下载完打开python 进行import +tensorflow,验证是否成功安装TensorFlow
三、Keras下载和安装
打开Anaconda prompt切换到有TensorFlow的环境下:
conda activate TensorFlow_py
安装keras前先依次执行以下两个命令:
conda install mingw libpython pip install theano
最后执行安装keras的命令,注意版本号要对应TensorFlow
pip install keras==2.3.1
下载完打开python 进行import +keras,输出Using TensorFlow backend安装成功。
四、配置PyCharm
顺便记录一下在进行PyCharm配置时遇到的问题
新建项目后选择添加解释器
选择左侧Conda环境,新版本下的PyCharm如下界面,其中Conda可执行文件选择Anaconda3根目录下的_conda.exe文件,点击加载环境,具体内容可参考文章pycharm找不到conda可执行文件_月光卫士的博客-CSDN博客
直接使用现有环境即可
创建项目文件,左下角选择TensorFlow_py路径下的解释器
等待解释器内容更新完毕后,添加代码并执行
from keras.utils import to_categoricalfrom keras import models, layers, regularizersfrom keras.optimizers import RMSpropfrom keras.datasets import mnistimport matplotlib.pyplot as plt#加载数据集并处理(train_images, train_labels), (test_images, test_labels) = mnist.load_data()#归一化处理,注意必须进行归一化操作,否则准确率非常低,图片和标签#将图片由二维铺开成一维train_images = train_images.reshape((60000, 28*28)).astype('float') #将28*28的二维数组转变为784的一维数组,浮点数类型test_images = test_images.reshape((10000, 28*28)).astype('float')train_labels = to_categorical(train_labels) #to_categorical就是将类别向量转换为二进制(只有0和1)的矩阵类型表示test_labels = to_categorical(test_labels)#print(train_labels[0])#搭建神经网络(全连接)network = models.Sequential() #选用的是Sequential 序贯模型sigmoidnetwork.add(layers.Dense(units=15, activation='sigmoid', input_shape=(28*28, ),))#添加一个(隐藏层)全连接层,神经元为15,激活函数是relu线性整流#函数,输入形状为28*28network.add(layers.Dense(units=10, activation='softmax'))#添加一个(输出层)全连接层,神经元为10,激活函数为softmax(Softmax 具有更好的解释性,#这块通过softmax激活函数,最后的数组中,十个数哪个最大,计算机就认为是哪个#神经网络的编译和训练# 编译步骤,损失函数是模型优化的目标,优化器使用RMSporp,学习率为0.001,损失函数是categorical_crossentropy,评价函数为accuracy准确率network.compile(optimizer='sgd', loss='categorical_crossentropy', metrics=['accuracy'])#RMSprop(lr=0.001)# 训练网络,用fit函数(fit()方法用于执行训练过程), epochs表示训练多少个回合, batch_size表示每次训练给多大的数据,一次训练所选取的样本数。network.fit(train_images, train_labels, epochs=22, batch_size=128, verbose=1) #verbose:日志显示 0 为不在标准输出流输出日志信息 1 为输出进度条记录 #2 为每个epoch输出一行记录#测试集上测试模型性能#y_pre = network.predict(test_images[:5]) #预测前五张图片的,model.predict 实际预测,其输出是目标值,根据输入数据预测。#print(y_pre, test_labels[:5])test_loss, test_accuracy = network.evaluate(test_images, test_labels) #model.evaluate函数预测给定输入的输出print("test_loss:", test_loss, " test_accuracy:", test_accuracy)print(network.summary()) #查看神经网络model结构
此文仅供学习参考使用,若有不正确需要补充的地方欢迎指正。