1、port:443报错
Failed to connect to raw.githubusercontent.com:443(https://zhuanlan.zhihu.com/p/115450863)
2、Tensorflow:AssertionError: Bad argument number for Name: 3, expecting 4 (bug)
tf=1.14环境,查看安装的gast包版本,版本太高不兼容
3、h5文件错误:解决IOError Unable to open file file signature not found
h5文件0字节
4、ValueError: Tensor Tensor(“dense/Sigmoid:0”, shape=(?, 13), dtype=float32) is not an element of this graph.
keras模型在Flask应用中调用时就会出现该错误,本质原因是web应用的模型初始化和模型调用不在同一个线程导致的,解决方法:在load_model后,立刻调用一次predict。
5、tensorflow.python.framework.errors_impl.InvalidArgumentError: Tensor Input-Token:0, specified in either feed_devices or fetch_devices was not found in the Graph
(离线模型跑的好好的,放进web应用就各种报错~~~出现错误5,就无须错误4中的修改了)
因为需要加载两个模型,底层tensorflow面对两个模型懵圈分不清楚了,解决方法是定义不同的计算图和会话:
6、ImportError: dlopen: cannot load any more object with static TLS
import kashgari时报该sklearn的错误,网上查资料,和包引用顺序之间有关系,*.py脚本中虽然没用到sklearn,但是在import kashgari之前import sklearn,完美解决该问题。
7、tensorflow.python.framework.errors_impl.InvalidArgumentError: No OpKernel was registered to support Op ‘CudnnRNN’ used by node
GPU训练的模型,本地CPU加载的时候报错,可以将带有cudnn的部分删除,本人代码里没有cudnn,只是将模型中的json文件中的cudnn删除,问题解决。
8、You can turn this error into a warning by using the flag ignore_longer_outputs_than_inputs
输出维度大于输入,tensorflow的话,将 ignore_longer_outputs_than_inputs改为True
tf.compat.v1.nn.ctc_loss(labels, inputs=None, sequence_length=None, preprocess_collapse_repeated=False, ctc_merge_repeated=True, ignore_longer_outputs_than_inputs=False, time_major=True,logits=None)
用keras的话,需要去安装包更改ignore_longer_outputs_than_inputs=True:
/usr/local/lib/python3.7/site-packages/tensorflow_core/python/ops/ctc_ops.py
9、TypeError: get_encoders() got an unexpected keyword argument ‘use_adapter’
keras-transformer 版本问题
10、kashgari1.1.1 error
original_keras_version = f.attrs[‘keras_version’].decode(‘utf8’)
AttributeError: ‘str’ object has no attribute 'decode
11、NotImplementedError: Cannot convert a symbolic Tensor (up_sampling2d_5_target_2:0) to a numpy array.
tensorflow版本问题,更新到tf 2.2.0试试
12、TypeError: ‘BertTokenizerFast’ object is not callable
transformers版本问题,更新就好了
13、MaxOS/Linux 安装horovod报错: subprocess.CalledProcessError: Command '[‘cmake’ ERROR: Command errored out with exit status 1
MacOS:1.需要安装cmake,官网下载并安装(可搜教程);2.确保g++已安装;3.安装libuv
Linux:教程
14、训练几个batch后,损失函数为 nan
损失函数计算过程中,计算导数的时候,存在无穷大,tensorflow或keras可以分别利用tf.clip_by_value(value, min, max)或K.clip(value, min, max)设置上下界。
15、Error: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {“col1”:“val1”,“col2”:“val2”}
执行hive SQL,向动态分区表插入数据的时候,总报该错,单独插入该行或者加上limit,可以执行成功(这就很让人恼火),有说是引擎错误、有说是节点错误……一般解决方法SQL加上,关闭矢量查询:
不行的话再加上:
但这都没有解决我的问题,最终又加上了几条设置才完美解决:
16、Container killed on request. Exit code is 143
hive SQL在进行分区合并的时候,由于分区多、数据量大,产生较多(100w+)的小文件,导致任务被杀死,此时没有太好的解决办法,可以较少动态分区的字段,或者将数据分批合并。
17、PermissionError: Permission denied: ‘/work’
在没有root权限的情况下,调用transformers包或者安装pytorch的扩展时,无法创建缓存文件夹,此时可以通过更改环境变量来实现(TRANSFORMERS_CACHE 或 TORCH_EXTENSIONS_DIR)
18、RuntimeError: Expected all tensors to be on the same device, but found at least two devices, CPU and cuda:0!
张量分在了不同了地方,没法计算,一般在源头 model.to_device() 就可以了。如果不是,可以将张量所在的地方打印出来,比如 input.device()。
19、同样的输入,transformer类模型输出的结果不一样
造成这种结果的原因主要有两个
- transformer结构内部存在一些随机数的操作,固定随机数就可以了(tensorflow/pytorch)
- 禁用dropout