相关文章:

【一】tensorflow安装、常用python镜像源、tensorflow 深度学习强化学习教学

【二】tensorflow调试报错、tensorflow 深度学习强化学习教学

【三】tensorboard安装、使用教学以及遇到的问题

【四】超级快速pytorch安装


trick1---实现tensorflow和pytorch迁移环境教学


1. tensorflow 深度学习

      书本链接:https://download.csdn.net/download/sinat_39620217/16491144

对应码源以及学习资料链接:https://gitee.com/dingding962285595/tensorflow_-rl    欢迎关注一键三连哦!

   

2. 常见遇到问题

2.1 版本兼容性问题导致代码运行出错

  • 在2.x版本运行1.x版本程序

      这句命令使tf2.1版本可以在1.1程序下运行

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
tf.compat.v1.disable_eager_execution()#这句话可有可无

2.2 tensorboard显示问题

1.首先进入tf2的环境下(这里才安装了)----conda的命令行
2.打开对应路径:比如进入D盘  d:就可以不用cd
3.进入d盘路径后,再cd D:\work_place
4.复制地址到  http://localhost:6006/

  • 编译执行,会生成log文件
  • 找到log文件(在F:\Python_Project\tensorflow_2\logs文件夹下)
  • tensorboard --logdir=logs    ->其中logs为保存log文件的文件夹

2.3 程序调试遇到问题

  • TensorFlow二进制文件没有被编译,你的CPU支持AVX扩展,但是你安装的TensorFlow版本无法编译使用

那为什么会出现这种警告呢?

由于tensorflow默认分布是在没有CPU扩展的情况下构建的,例如SSE4.1,SSE4.2,AVX,AVX2,FMA等。默认版本(来自pip install tensorflow的版本)旨在与尽可能多的CPU兼容。另一个观点是,即使使用这些扩展名,CPU的速度也要比GPU慢很多,并且期望在GPU上执行中型和大型机器学习培训。

tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2

在这种情况下,您可以简单地忽略此警告:

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

tf报错整合---别人博客【转载-----有遇到问题可以去这个博主那里看看】

https://blog.csdn.net/weixin_43968923/article/details/105640319?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase

2.4 语法问题

  • 解决使用 plt.savefig 保存图片时一片空白

  • 当使用如下代码保存使用 plt.savefig 保存生成的图片时,结果打开生成的图片却是一片空白
import matplotlib.pyplot as plt

""" 一些画图代码 """

plt.show()
plt.savefig("filename.png")

原因:在 plt.show() 后调用了 plt.savefig() ,在 plt.show() 后实际上已经创建了一个新的空白的图片(坐标轴),这时候你再 plt.savefig() 就会保存这个新生成的空白图片。

解决:在 plt.show() 之前调用 plt.savefig()

import matplotlib.pyplot as plt

""" 一些画图代码 """

plt.savefig("filename.png")
plt.show()

画图的时候获取当前图像

# gcf: Get Current Figure
fig = plt.gcf()
plt.show()
fig1.savefig('xxx.png', dpi=50)
  • module 'tensorflow' has no attribute 'random_normal'

解决办法:tf2.0里改名字了,用tf.random.uniform代替

  • module 'tensorflow._api.v2.train' has no attribute 'AdamOptimizer'

model.compile(optimizer = tf.train.AdamOptimizer(),
loss = 'sparse_categorical_crossentropy',
metrics=['accuracy'])

会出错修改为下面:

model.compile(optimizer = tf.optimizers.Adam(),
loss = 'sparse_categorical_crossentropy',
metrics=['accuracy'])

或者:

model.compile(optimizer = 'adam',
loss = 'sparse_categorical_crossentropy',
metrics=['accuracy'])

错误程序:

# Note, minimize() knows to modify W and b because Variable objects are trainable=True by default
#optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
optimizer = tf.optimizers.SGD(name='SGD').minimize(cost)
#optimizer = tf.SGD(learning_rate).minimize(cost)
# Initialize the variables (i.e. assign their default value)
init = tf.global_variables_initializer()

修改:需要给定权重系数w,b

optimizer = tf.optimizers.SGD(name='SGD').minimize(cost,var_list=[W,b])
  • SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: tr

解决:

demo:

sys.path.append('c:\Users\mshacxiang\VScode_project\web_ddt')

原因分析:在windows系统当中读取文件路径可以使用\,但是在python字符串中\有转义的含义,如\t可代表TAB,\n代表换行,所以我们需要采取一些方式使得\不被解读为转义字符。目前有3个解决方案

  • 在路径前面加r,即保持字符原始值的意思。
sys.path.append(r'c:\Users\mshacxiang\VScode_project\web_ddt')
  • 2、替换为双反斜杠
sys.path.append('c:\\Users\\mshacxiang\\VScode_project\\web_ddt')
  • 替换为正斜杠
sys.path.append('c:/Users/mshacxiang/VScode_project/web_ddt')
  • AttributeError: module 'tensorflow' has no attribute 'merge_all_summaries'

原因:由于不同的TensorFlow版本之间某些函数的用法引起的错误,属性错误:模块“tensorflow”没有“merge_all_summaries”属性

解决:将 tf.merge_all_summaries()改为 tf.summary.merge_all()

  • “ImportError DLL load failed 找不到指定的程序”

原因:ImportError DLL load failed的报错,编写代码时不报错(比如ModuleNotFoundError: No module named 'XXX'下,在pycharm中写import XXX会标红),运行的时候才报错。

这说明你这个包,是在默认的搜索路径下的。由于你这个包有问题,才导致写的时候不报错,运行的时候才报错。

主要原因是:函数库调用其依赖库时出现了问题

import sklearn
import seaborn

sklearnseaborn这两个库都有依赖库。比如sklearn的依赖库有numpyscipyjoblib

问题:

  • 函数库本身有问题,导致调用异常。
  • 依赖包版本不符,导致调用异常。

解决方法:

  • 重新安装该函数库。
  • 检查依赖包的版本(过高或过低)。

常见的是python3完全不兼容python2,另一个表现是,第三方库都有dependencies,要求某些库的版本>=某个版本。但是居然还会有向上不兼容的问题,即依赖包版本过高,会导致依赖这个包的第三方库无法正常使用。

查看依赖库信息

有两种方式

  • 通过命令行查看:conda search package_name --info

    比如查看seaborn的信息,在命令行输入conda search seaborn --info,可以查看seaborn各版本的信息(包括依赖包的信息):

seaborn 0.11.1 pyhd3eb1b0_0
---------------------------
file name : seaborn-0.11.1-pyhd3eb1b0_0.conda
name : seaborn
version : 0.11.1
build : pyhd3eb1b0_0
build number: 0
size : 212 KB
license : BSD 3-Clause
subdir : noarch
url : https://repo.anaconda.com/pkgs/main/noarch/seaborn-0.11.1-pyhd3eb1b0_0.conda
md5 : ffbd2d692d2acdc84f2cdbd2c66d1098
timestamp : 2020-12-21 19:23:03 UTC
dependencies:
- matplotlib >=2.1.2
- numpy >=1.13.3
- pandas >=0.22.0
- python >=3.6
- scipy >=1.0.1

转自:https://blog.csdn.net/qq_41683065/article/details/99710373

可见pycharm会使用Anaconda路径下的函数库(‘E:\Anaconda\lib’),命令行运行的时候会使用Python37路径下的函数库(‘E:\Python37\lib’)。

也就是说,如果我用Python37路径下的相关函数库,去替代Anaconda路径下的相关函数库,那么在pycharm中就可以正常运行了。

这之后我用Python37路径下sklearn的文件夹,替换了Anaconda路径下sklearn的文件夹,发现还是一样的报错信息。

然后我就怀疑是不是依赖包的的版本问题,导致了ImportError 的出现。之后我通过_version_()函数打印了两个路径下,sklearn的依赖包的版本

#python37
sklearn: 0.21.3
numpy: 1.15.3
scipy: 1.3.0
joblib: 0.13.2 #acaconda
import sklearn
sklearn.__version__
Out[4]: '0.21.3'
numpy: 1.16.2
scipy: 1.2.1
joblib: 0.13.2

然后,我就把Anaconda下的numpy库从1.16.2降级到1.15.3。

即在命令行里输入conda install numpy=1.15.3 (pip的命令是pip install numpy==1.15.3,但是路径不是 Anaconda的路径了,还得改路径)。

然后发现成功了!!!sklearn和seaborn都解决了!!!居然是numpy这个第三方库向上不兼容的问题(活久见系列)。

最后Anaconda路径下,依赖包的版本:

sklearn: 0.21.3
numpy: 1.15.3
scipy: 1.1.0
joblib: 0.13.2

源代码:

import sys,os
# curPath = os.path.abspath(os.path.dirname(__file__))
# print(sys.path)
# # print(os.path.dirname(__file__))
# # print(curPath)
# # rootPath = os.path.split(curPath)[0]
# # print(os.path.split(curPath))
# # print(rootPath)
# # sys.path.append(rootPath)
sys.path.append('E:\\Anaconda\\lib\\site-packages\\')
# # sys.path = ['C:\\Users\\73416\\PycharmProjects\\HSIproject', 'E:\\Python37\\python37.zip', 'E:\\Python37\\DLLs', 'E:\\Python37\\lib', 'E:\\Python37', 'E:\\Python37\\lib\\site-packages', 'E:\\Python37\\lib\\site-packages\\win32', 'E:\\Python37\\lib\\site-packages\\win32\\lib', 'E:\\Python37\\lib\\site-packages\\Pythonwin', 'E:\\Anaconda\\lib\\site-packages\\'] print(sys.path)
# from utils import open_file
import sklearn
import numpy
import scipy
import joblib
import seaborn print('sklearn:',sklearn.__version__)
print('numpy:',numpy.__version__)
print('scipy:',scipy.__version__)
print('joblib:',joblib.__version__) print('done!')

【二】tensorflow调试报错、TF深度学习强化学习教学的更多相关文章

  1. PyCharm导入tensorflow包报错的问题

    [注]PyCharm导入tensorflow包报错的问题 若是你也遇到这个问题,说明你也没有理解tensorflow到底在哪里. 当安装了anaconda3.6后,在PyCharm中设置interpr ...

  2. 【pycharm】pycharm上安装tensorflow,报错:AttributeError: module 'pip' has no attribute 'main' 解决方法

    pycharm上安装tensorflow,报错:AttributeError: module 'pip' has no attribute 'main' 解决方法 解决方法: 在pycharm的安装目 ...

  3. 真机调试报错error ==Error Domain=NSURLErrorDomain Code=-1009 "似乎已断开与互联网的连接。"

    真机调试报错error ==Error Domain=NSURLErrorDomain Code=-1009 "似乎已断开与互联网的连接." 请注意,错误代码是-1009,网上关于 ...

  4. 今天微信小程序发现wx.request不好使了,调试报错: 小程序要求的 TLS 版本必须大于等于 1.2

    今天微信小程序发现wx.request不好使了,调试报错: 小程序要求的 TLS 版本必须大于等于 1.2 查官方文档 解决方法 在 PowerShell中运行以下内容, 然后重启服务器 # Enab ...

  5. 安卓小程序的一次bug调试,报错:java.lang.NullPointerException,logcat学习

    做实验的时候,调试了很久后模拟器执行后,app还是会崩溃并停止运行,错误如下. 因为初学,所以也不知道怎么使用调试工具,也不懂看日志,经过学习后尝试这查看了LogCat日志上面有这样的提示: 其中引起 ...

  6. 2018最新win10 安装tensorflow1.4(GPU/CPU)+cuda8.0+cudnn8.0-v6 + keras 安装CUDA失败 导入tensorflow失败报错问题解决

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9747019.html 基本开发环境搭建 1. Microsoft Windows 版本 关于W ...

  7. TensorFlow 安装报错的解决办法

    最近关注了几个python相关的公众号,没事随便翻翻,几天前发现了一个人工智能公开课,闲着没事,点击了报名. 几天都没有音信,我本以为像我这种大龄转行的不会被审核通过,没想到昨天来了审核通过的电话,通 ...

  8. (转)Pycharm在Ubuntu 16.04 系统中tensorflow导入报错

    今天下午在配置pycharm时一直出现tensorflow不能导入的错误,如下图所示: 通过以下步骤可以解决问题: 步骤一: 1)在pycharm安装目录下,进入bin目录(一般情况下我们下载解压py ...

  9. TensorFlow 安装报错的解决办法(安装1.5版本)

    1.安装Anaconda 百度下载windows版本,一路点下一步,安装好了Anaconda,自带python3.6.6. 2.安装TensorFlow (1)打开Anaconda Prompt,输入 ...

  10. 小程序插件集成functional-page-navigator真机调试报错

    小程序集成插件 插件里面有functional-page-navigator标签 一."小程序开发版已过期,请重新扫码连接" 真机在调用插件的时候报错 "小程序开发版已过 ...

随机推荐

  1. Step by step guide to becoming a C++ developer in 2023

    https://roadmap.sh/cpp https://roadmap.sh/backend

  2. Codeforces Round #681 (Div. 2, based on VK Cup 2019-2020 - Final) 个人题解(A - D)

    1443A. Kids Seating 题意: 给你一个整数n,现在你需要从编号 \(1\) ~ $4 ⋅ n \(中选出\)n\(个编号使得这些编号之间\)g c d ≠ 1$ ,不能整除. 看了半 ...

  3. 虚拟现实 VR 碰撞 3D 可视化,图扑打造一体化管控平台

    前言 工信部<虚拟现实产业发展白皮书 5.0 >中明确提出:"通过财政资金促进虚拟现实技术产业化,支持面向工业.文化.教育等重点行业的虚拟现实技术应用". 虚拟现实 V ...

  4. 【调试】ftrace(三)trace-cmd和kernelshark

    之前使用ftrace的时候需要一系列的配置,使用起来有点繁琐,这里推荐一个ftrace的一个前端工具,它就是trace-cmd trace-cmd安装教程 安装trace-cmd及其依赖库 git c ...

  5. java基础(15)--多态

    一.多态的含义 1.多种形态.多种状态,指的是编译与运行有不同的状态 2.编译时->静态绑定 3.执行时->动态绑定 4.多类典型场景:父类的引用指向了子类型的对象   二.向下转型与向上 ...

  6. 【C++】类概念及使用

    类定义中不允许对数据成员初始化 类外只能访问公有部分 类成员必须指定访问属性 类的成员函数是实现对封装的数据成员进行操作的唯一途径 类定义中不允许定义本类对象,因无法预知大小 类与结构形式相同,唯一区 ...

  7. JavaScript : 获取文件名后缀

               /** 获取文件后缀               *               * indexOf 和 lastIndexOf 都是索引文件            indexO ...

  8. WebApi使用Swagger

    services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API ...

  9. [转帖]修改Linux内核参数,减少TCP连接中的TIME-WAIT

    https://www.cnblogs.com/xiaoleiel/p/8340346.html 一台服务器CPU和内存资源额定有限的情况下,如何提高服务器的性能是作为系统运维的重要工作.要提高Lin ...

  10. GB18030-2022 标准学习

    GB18030-2022 标准学习 下载 https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=A1931A578FE14957104988029B08 ...