使用不同版本TensorFlow编写神经网络模型遇到的问题与解决

TensorFlow使用篇

以前在台式机上面写的代码,现在在自己的笔记本上面用不了了,出现了几个问题,才发现是自己笔记本的GPU低了,然后陆陆续续报了一些错误,以我以前写的一个LSTM代码为例,重新走一遍修改代码的道路吧。
1、第一个报错是“ImportError: DLL load failed: 动态链接库(DLL)初始化例程失败。”这样子的错误,实际上是运行不了TensorFlow,后面将TensorFlow的版本降低到1.5,同时使用命令“pip install tensorflow-gpu==1.5”安装了适合的TensorFlow运行的配置,这一步或可略过!
2、第二个是之前的代码中,TensorFlow(2.0以上的版本)将keras里面的功能都集成到TensorFlow中,然而老版本并没有。
之前的:

from tensorflow.keras.layers import Dense, Embedding, LSTM
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Flatten, Dropout

修改后的:

from keras.layers import Dense, Embedding
from keras.models import Sequential
from keras.layers import Dropout

3、运行的时候可能会遇到:

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)])

这是numpy的版本太高导致的,因此可以降低一下numpy的版本,如命令“pip install numpy==1.16.4”
4、在能够运行的情况下,其他问题都不大,与之前版本修改的相比,一些函数名或者参数有个别小小的调整,在这里我碰到了两个,顺便提一下吧。

  1. 为了将结果复现,我们还需要设置一个随机数种子,2.0版本的是
tf.random.set_seed(123)  # 更高版本

而低版本tf是

tf.set_random_seed(123)
  1. 在最后函数精度验证的时候,新版本的是‘accuracy’、‘val_accuracy’、‘loss’、‘val_loss’,老版本前面两个参数不同“acc”和‘val_acc’

最后分享一下我LSTM任务的结果:在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值