旧版吴恩达深度学习环境搭建(anaconda+tensorflow+jupyter notebook)(呕心沥血诚意之作)

article/2025/5/20 0:13:34

        本人在参考多位博主的文章后,多次尝试才成功配置了tensorflow1.2.1的环境(课程建议Python3.6+tensorflow1.2.1+Keras2.0.7)。在此之前,曾经尝试用tensorflow2.x降级的方法(import tensorflow.compat.v1 as tf),运行课后作业,但是存在诸多问题,不得不弃用2.x版本,进而构建tensorflow1.2.1的环境。如果要使用tensorflow2.x的环境,可以配套使用新版的吴恩达教授深度学习课程。(本人用的旧版课程)。

        本文内容为个人见解,亲自实践得来。如果读者有不同见解,欢迎交流指正。

目录

1.anaconda下载

2.tensorflow环境配置

2.1 创建虚拟环境

2.2 安装tensorflow

2.3 安装keras

3.安装和配置jupyter

3.1 使用命令行安装

3.2 使用anaconda navigator安装

4.安装需要使用的库

5. 附录:记录一些可能用到的指令


主要参考文章:

1.吴恩达课程编程环境配置windows

2. 吴恩达2022版深度学习第二部分Annaconda+Tensorflow环境搭建

3. 在anaconda环境下安装旧版本TensorFlow1.8

1.anaconda下载

        本人使用anaconda的版本Anaconda3-2023.03-1-Windows-x86_64(当时官网下载的最新版本),在anaconda.org可以免费下载(free download)。安装过程和一些环境变量的配置大同小异,可以参考其他博客,这里就不进行赘述。

2.tensorflow环境配置

参考文章:吴恩达课程编程环境配置windows

作业中使用到了TensorFlow与Keras,相应的版本为
   python:3.6.0
   tensorflow:1.2.1
   keras:2.0.7

2.1 创建虚拟环境

在搜索栏中搜索“Anaconda Prompt”并运行

 打开 Anaconda Prompt 之后,输入命令:

创建虚拟环境,命名为dltf,编译器为python3.6

conda create --name dltf python=3.6.0

激活环境(从base环境切换到dltf环境)

activate dltf

 

2.2 安装tensorflow

参考文章:吴恩达2022版深度学习第二部分Annaconda+Tensorflow环境搭建

安装tensorflow1.2.1,输入pip install tensorflow==1.2.1(-i后面是镜像源的名字,这里用到是清华的)

pip install tensorflow==1.2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

安装好之后,查看python和tensorflow的版本

python
>>>import tensorflow as tf
>>>tf.__version__

(dltf) C:\Windows\System32>python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
E:\develop+\anaconda3\envs\dltf\lib\site-packages\tensorflow\python\framework\dtypes.py:458: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'._np_qint8 = np.dtype([("qint8", np.int8, 1)])
E:\develop+\anaconda3\envs\dltf\lib\site-packages\tensorflow\python\framework\dtypes.py:459: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'._np_quint8 = np.dtype([("quint8", np.uint8, 1)])
E:\develop+\anaconda3\envs\dltf\lib\site-packages\tensorflow\python\framework\dtypes.py:460: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'._np_qint16 = np.dtype([("qint16", np.int16, 1)])
E:\develop+\anaconda3\envs\dltf\lib\site-packages\tensorflow\python\framework\dtypes.py:461: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'._np_quint16 = np.dtype([("quint16", np.uint16, 1)])
E:\develop+\anaconda3\envs\dltf\lib\site-packages\tensorflow\python\framework\dtypes.py:462: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'._np_qint32 = np.dtype([("qint32", np.int32, 1)])
E:\develop+\anaconda3\envs\dltf\lib\site-packages\tensorflow\python\framework\dtypes.py:465: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.np_resource = np.dtype([("resource", np.ubyte, 1)])
>>> tf.__version__
'1.2.1'
>>>

 这里查出了tensorflow的版本,但是有警告。我们需要复制dtypes.py的路径,打开dtypes.py,然后进行修改(是你自己的路径,跟我的不同,图中看出路径为E:\develop+\anaconda3\envs\dltf\lib\site-packages\tensorflow\python\framework\dtypes.py)

文件打开是这样的

这里的前缀是你的anaconda安装地址,运行结果里也会显示。出错的行数也可能不同,具体看你的运行过程了。我测试后发现需要将报错的几个都修改一下,就不会再出现了。对报警的行进行修改。修改时要把命令行先关了。
将我的458行的_np_quint8 = np.dtype([(“quint8”, np.uint8, 1)])改为

_np_quint8 = np.dtype([("quint8", np.uint8, (1,))])

这里参考了:在anaconda环境下安装旧版本TensorFlow1.8 

原版:

_np_qint8 = np.dtype([("qint8", np.int8, 1)])
_np_quint8 = np.dtype([("quint8", np.uint8, 1)])
_np_qint16 = np.dtype([("qint16", np.int16, 1)])
_np_quint16 = np.dtype([("quint16", np.uint16, 1)])
_np_qint32 = np.dtype([("qint32", np.int32, 1)])

修改后:

_np_qint8 = np.dtype([("qint8", np.int8, (1,))])
_np_quint8 = np.dtype([("quint8", np.uint8, (1,))])
_np_qint16 = np.dtype([("qint16", np.int16, (1,))])
_np_quint16 = np.dtype([("quint16", np.uint16, (1,))])
_np_qint32 = np.dtype([("qint32", np.int32, (1,))])

后面还有一句(第465行的警告)

#np_resource = np.dtype([("resource", np.ubyte, 1)])
np_resource = np.dtype([("resource", np.ubyte, (1,))])

2.3 安装keras

安装keras

pip install keras==2.0.7 -i https://pypi.tuna.tsinghua.edu.cn/simple

3.安装和配置jupyter

3.1 (方法一)使用命令行安装

pip install --user jupyter -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com  

这里的--trusted-host pypi.douban.com,是将豆瓣源设为可信任 。

出现错误 ERROR: Command errored out with exit status 1

参考了:pip install 时报错:ERROR: Command errored out with exit status 1: python setup.py egg_inf

需要更新一下pip

#更新pip
pip install --upgrade setuptools && python -m pip install --upgrade pip#然后重新安装jupyter
pip install --user jupyter -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

 此时仍然出现很多warning,我们等会解决

运行jupyter notebook

jupyter notebook

 #出现已存在的包在jupyter notebook中无法import的现象(或者kernel error最佳解决方法):

解决方法:jupyter无法导入已安装的包?原因竟是它!

出现这个问题的原因是:jupyter中的kernel和新的环境不匹配(现在的kernel可能是上个环境的kernel,还没切换过来),需要新的配置文件使得kernel与新的环境匹配,然后进行kernel的切换。

#有可能出现的问题:打开的notebook网页在运行时出现kernel error(这个方法不能根治):

参考了:kernel error 解决办法

#此方法不能根治,不推荐使用
python -m ipykernel install --user
#然后再重新启动jupyter notebook

以上问题都解决后,就继续安装需要使用的库了。

3.2 (方法二)使用anaconda navigator安装

直接在导航中安装,如果安装卡了很久的话,有可能是pip没更新 

#更新pip
pip install --upgrade setuptools && python -m pip install --upgrade pip

我是在命令行安装后,才从navigator中再安装的。如果直接安装的话,可能会遇到一些问题,可以尝试先用命令行装。其他问题可以参考:吴恩达2022版深度学习第二部分Annaconda+Tensorflow环境搭建 

4.安装需要使用的库

安装matplotlib

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

安装pillow

pip install pillow==8.4.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

安装spicy

spicy版本过高的话(如:1.5.4),会报错" AttributeError: module 'scipy.misc' has no attribute 'imread' ",这里安装版本为1.2.1(因为视频比较老了)

pip install scipy==1.2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

安装h5py

注:使用python3.6时,h5py版本>3.0.0时(如3.1.0),可能会出现" attributeerror: 'str' object has no attribute 'decode' "的错误,我这里安装的版本是2.1.0

参考文章:

【错误】加载h5权重出错AttributeError: ‘str‘ object has no attribute ‘decode‘

python h5py库安装(记录使用wheel安装的方法)

pip install h5py==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple#如果已经安装了,可以使用命令卸载,再重新安装
pip uninstall h5py

然后作业中缺什么包,用同样的方法安装就行了。

到此为止,就可顺利运行作业了。

注:

#遇到emojize() got an unexpected keyword argument 'use_aliases',则安装emoji-1.2.0版本

pip install emoji==1.2.0

#遇到TypeError: Calling ‘.seed()’ on instances is deprecated. Use the class method ‘Faker.seed()’ instead.

降低Faker的版本

pip install faker==2.0.0

#遇到类似报错original_keras_version = f.attrs[‘keras_version‘].decode(‘utf8‘)AttributeError: ‘str‘ object has ...('str' object has no attribute 'decode')

h5py的版本过高,降低版本(可先卸载原版本)

pip uninstall h5py
pip install h5py==2.10.0

5. 附录:记录一些可能用到的指令

(参考用,使用时可适当修改,随手记录一下)

conda clean --packages --tarballs 清除conda缓存conda remove -n tensorflow1.2.1(环境的名字) --all  #删除环境 conda create -n tensorflow1.2.1 python=3.6 #安装python3.6pip install tensorflow==1.2.1 -i https://mirrors.aliyun.com/pypi/simple/python -m pip install --upgrade pip #先更新pipconda install ipython -i https://mirrors.aliyun.com/pypi/simple/pip install --user tensorflow==1.2.1 --upgradehttps://blog.csdn.net/Erick2020/article/details/119706076pip install --user jupyter -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com #jupyter的安装(在管理员模式下--user可以去掉)
pip install jupyter -i http://pypi.douban.com/simple/使用anaconda的版本Anaconda3-2023.03-1-Windows-x86_64conda env list #查看环境列表pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple


http://chatgpt.dhexx.cn/article/YYIPWgdh.shtml

相关文章

《吴恩达深度学习》编程作业-第二周

目录 1.题目:基于神经网络思维模式的逻辑回归 2.声明 3.知识回顾 4.Python编程分析 4.1.导入需要用的库 4.2.数据处理 4.2.1.读取数据(包括训练集和测试集) 4.2.2.取出数据(包括训练集和测试集,还有标签的值&a…

吴恩达 深度学习 2021版 作业

练习 神经网络与深度学习神经网络基础Numpy基础1-使用numpy构建基本函数 神经网络与深度学习 神经网络基础 Numpy基础 学习目标: 使用numpy,包括函数调用及向量矩阵运算广播向量化代码 1-使用numpy构建基本函数 1.1- sigmoid function和np.exp&…

吴恩达深度学习

最近在学习吴恩达老师的深度学习,边学边随手记一些东西,留个简单的笔记,以便日后复习。 第一周 结构化数据:每个特征都有清晰的定义 非结构化数据:音频、图像、文本等 大规模的神经网络大规模的带标签数据 第一周习题…

吴恩达《深度学习专项》笔记(十二):目标检测与语义分割简介 (YOLO, U-Net)

这节课中,我们要学习计算机视觉中最重要的任务之一——目标检测任务。我们会先认识目标定位和关键点检测这两个比较简单的任务,慢慢过度到目标检测任务。之后,我们会详细学习目标检测的经典算法YOLO。最后,我们会稍微认识一下语义…

吴恩达:28张图全解深度学习知识

吴恩达在推特上展示了一份由 TessFerrandez 完成的深度学习专项课程信息图,这套信息图优美地记录了深度学习课程的知识与亮点。因此它不仅仅适合初学者了解深度学习,还适合机器学习从业者和研究者复习基本概念。喜欢记得关注、收藏、点赞。 这不仅仅是一…

吴恩达深度学习深度学习概述以及优化

深度学习概述及优化 1、深度学习概述2、神经网络基础之逻辑回归3、深层神经网络4、深度学习实用层面4.1 训练集、验证集、测试集4.2 偏差、方差4.3 L1、L2正则化4.4 归一化处理4.5 Dropout4.6 其他正则化方法4.7 梯度消失和爆炸 1、深度学习概述 在之前的吴恩达机器学习课程中…

深度学习-吴恩达:一、神经网络和深度学习

文章目录 1、what is a Neural Network?(什么是神经网络)2、Supervised Learning with Neural Networks (监督学习)3、为什么深度学习会兴起?第一周测验测验题答案 1、what is a Neural Network?(什么是神…

IOS开发视频教程《保卫萝卜》-任亮-专题视频课程

IOS开发视频教程《保卫萝卜》—3411人已学习 课程介绍 《保卫萝卜CarrotFantasy》是一款由开发商“凯罗天下”开发的超萌塔防小。14种防御塔保卫萝卜战怪兽。保卫萝卜是一款制作精美的超萌塔防游戏,游戏含有丰富的关卡和主题包,拥有各自风格特色…

ios游戏开发 Sprite Kit教程:初学者 1

注:本文译自Sprite Kit Tutorial for Beginners 目录 Sprite Kit的优点和缺点Sprite Kit vs Cocos2D-iPhone vs Cocos2D-X vs UnityHello, Sprite Kit!横屏显示移动怪兽发射炮弹碰撞检测: 概述碰撞检测: 实现收尾何去何从? 在iOS 7中内置了一个新的Sprite Kit框架…

HTML5游戏开发高级教程 | Lynda教程 中文字幕

HTML5游戏开发高级教程 | Lynda教程 中文字幕 Advanced HTML5 Game Development 课程ID: 597988 时长: 2.3小时 所属类别:Html 全部游戏开发课程 了解如何使用HTML5创建交互式,动态和丰富多彩的游戏 在本课程中,学习如何充分利用所有HTML5功能来创建…

ios游戏开发 Sprite Kit教程:初学者 2

注:本文译自Sprite Kit Tutorial for Beginners 目录 Sprite Kit的优点和缺点Sprite Kit vs Cocos2D-iPhone vs Cocos2D-X vs UnityHello, Sprite Kit!横屏显示移动怪兽发射炮弹碰撞检测: 概述碰撞检测: 实现收尾何去何从? 横屏显示 首先,在Project Na…

【游戏开发教程】Unity iOS平台接入微信SDK,实现微信登录等功能(教程 | 流程讲解)

文章目录 一、前言二、流程1、申请开发者账号2、创建应用3、下载SDK4、导入到Unity中5、编写Objective-C代码5.1、CustomAppController.mm5.2、WXApiManager.h5.3、WXApiManager.mm5.4、注册回调对象5.5、封装初始化接口5.6、封装登录接口5.7、其他接口封装 6、XCodeAPI7、关于…

iOS开发知识概览

1、学习ios开发的知识概览,经常会认为ios开发会学那些知识,如何把断断续续的知识连接起来, 这就让你有了全局的了解,如何去计划和安排自己的学习计划,有了全局的知识体系。 原文来自:https://github.com/sh…

IOS 开发之逆向分析

在逆向过程中很多时候需要分析 APP 和 Web 端数据交互的内容那么最简单的方式即是抓包网络分析,而使用 Charles、Tcpdump 也是逆袭分析最基本的手段。本文以 Charles 为例来介绍网络相关的内容。 Charles 是在 Mac 下常用的网络封包截取工具,在做 移动开…

ios游戏开发

知识系统 英文教程网站 http://www.csdn.net/article/2012-12-20/2813035-game-dev-guide 开发类库 http://www.csdn.net/article/2012-11-07/2811587-pop-ios-dev-library

芒果iOS开发之Swift教程01-Swift基础

【主要内容】 1.关于Swift 2.Hello World 3.常量和变量 4.类型标注 5.常量和变量的命名 6. 输出常量和变量 7.注释 8.分号 一、关于Swift 苹果在2014年WWDC(苹果开发者大会)发布了Swift,用于编写iOS,Mac OS X和watchOS…

ios教程,用pc开发ios游戏

原文是Thomas Henshell对手机游戏Catch the Monkey的开发总结,由Lyra翻译。 传智播客今年6月开始ios培训(http://ios.itcast.cn)的课程;相对于一些应用,我本人对ios游戏开发更感兴趣,这些开发总结并不拘泥…

RPG游戏开发基础教程

RPG游戏开发基础教程 第一步 下载RPG Maker 开发工具包 1.RPG Maker 是什么?RPG Maker 是由Enterbrain公司推出的RPG制作工具。 中文译名为RPG制作大师。 熟悉的人喜欢简称为RM。 根据发行版本的不同,RM在国内流行的版本有4款: 2.附上资源下载地址:点击进入网盘下载 3.关于…

ios开发快速入门教程

1.高级C语言、C语言 C语言是iOS开发的语言(Objective-C)基础,在iOS开发培训的课程中也会涉及到。iOS开发培训需要强调的是并不是要同学们都要精通C/C,而是要掌握iOS开发中要用的的C/C的核心内容。 2.Objective-C语言 Objective-C是iOS开发的标准语言&…

苹果游戏开发教程之如何使用 SpriteKit 和 GameplayKit 制作你的街机手机游戏

项目运行效果 什么是GameplayKit GameplayKit 是由 Apple 开发的框架,在 iOS 9 和 macOS X.11 中引入,它提供了许多类型游戏中常见的基础设施。 它让您专注于游戏玩法和游戏规则,以最大限度地减少意大利面条式代码的编写,并且只需要基于 Objective-C 或 Swift 的界面。 使…