相关文章:

【一】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. Python中字符前添加r,b,u,f前缀的含义

    1.在python字符串前添加r,意思为消除转义字符 2.在python字符串前添加f,意思为支持大括号内的python 表达式. 3.在python字符串前添加b,意思为字符串类型为byte类型,在 ...

  2. 【django drf】 阶段练习

    目录 需求 settings.py views.py urls.py serializers.py permissions.py page.py authenticate.py model.py 权限 ...

  3. ME21N 采购订单新增页签增强

    1.实现效果 根据客制化需求,要在采购订单中新增大量字段,所以要在界面上添加一个单独的页签.效果如下: 2.增强实现 2.1.增强结构 因为是在抬头上边添加,所以增强CI_EKKODB结构 2.2.函 ...

  4. Eight HDU - 1043 (反向搜索 + 康拓展开 / A* + BFS / IDA* )

    题目描述 简单介绍一下八数码问题: 在一个3×3的九宫格上,填有1~8八个数字,空余一个位置,例如下图: 1 2 3 4 5 6 7 8 在上图中,由于右下角位置是空的,你可以移动数字,比如可以将数字 ...

  5. Vue中如何使用sass实现换肤(更换主题)功能

    Vue中如何使用sass实现换肤(更换主题)功能 https://blog.csdn.net/m0_37792354/article/details/82012278

  6. Java中的日期计算

    Java中的日期计算:详细指南 日期计算是Java编程中的一个常见任务,无论是在日常应用开发还是在企业级系统中.本文详细介绍了如何在Java中进行日期计算,包括添加天数.计算两个日期之间的差异以及格式 ...

  7. 【JavaWeb】JSP基础和应用

    JSP基础 JSP简介 JSP全称是Java Server Page,它和Servlet一样,也是sun公司推出的一套开发动态web资源的技术,称为JSP/Servlet规范.JSP的本质其实就是一个 ...

  8. 配置Maven项目的pom.xml时遇到input contained no data问题

    1.问题 2.解决 我发现每次当我修改一些部分之后,就会遇到这个问题 我遵循了他的建议重新排列标记属性,然后重新加载就解决了报错 个人怀疑是修改后并没有识别之类的? 最终原因:是我在Maven项目中的 ...

  9. 在Windows 版的Chrome中切换标签页

    按住Ctrl+tab键之后使用page up/ page down键左右移动!

  10. springboot - 解决使用pagehelper 报 SQL语句异常

    原因: mapper.xml 中的sql加上了分号. <select id="search" resultType="***.Table"> sel ...