日常ERROR笔记
1、port:443報(bào)錯(cuò)
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環(huán)境,查看安裝的gast包版本,版本太高不兼容
pip install gast==0.2.23、h5文件錯(cuò)誤:解決IOError Unable to open file file signature not found
h5文件0字節(jié)
4、ValueError: Tensor Tensor(“dense/Sigmoid:0”, shape=(?, 13), dtype=float32) is not an element of this graph.
keras模型在Flask應(yīng)用中調(diào)用時(shí)就會(huì)出現(xiàn)該錯(cuò)誤,本質(zhì)原因是web應(yīng)用的模型初始化和模型調(diào)用不在同一個(gè)線程導(dǎo)致的,解決方法:在load_model后,立刻調(diào)用一次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
(離線模型跑的好好的,放進(jìn)web應(yīng)用就各種報(bào)錯(cuò)~~~出現(xiàn)錯(cuò)誤5,就無(wú)須錯(cuò)誤4中的修改了)
因?yàn)樾枰虞d兩個(gè)模型,底層tensorflow面對(duì)兩個(gè)模型懵圈分不清楚了,解決方法是定義不同的計(jì)算圖和會(huì)話:
from tensorflow.python.keras.backend import set_session import tensorflow as tf # 程序開始時(shí)聲明 # tf2中: graph = tf.compat.v1.get_default_graph() # 在model加載前添加set_session sess1 = tf.Session() graph1 = tf.get_default_graph() set_session(sess1) model1.load_model(model_path1)sess2 = tf.Session() graph2 = tf.get_default_graph() set_session(sess2) model2.load_model(model_path2) # 每次使用有關(guān)模型請(qǐng)求時(shí) for each request:global sess1global graph1with graph1.as_default():set_session(sess1)model1.predict(...)global sess2global graph2with graph2.as_default():set_session(sess2)6、ImportError: dlopen: cannot load any more object with static TLS
import kashgari時(shí)報(bào)該sklearn的錯(cuò)誤,網(wǎng)上查資料,和包引用順序之間有關(guān)系,*.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訓(xùn)練的模型,本地CPU加載的時(shí)候報(bào)錯(cuò),可以將帶有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
python uninstall h5py pip install h5py==2.1011、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報(bào)錯(cuò): subprocess.CalledProcessError: Command '[‘cmake’ ERROR: Command errored out with exit status 1
MacOS:1.需要安裝cmake,官網(wǎng)下載并安裝(可搜教程);2.確保g++已安裝;3.安裝libuv
Linux:教程
14、訓(xùn)練幾個(gè)batch后,損失函數(shù)為 nan
損失函數(shù)計(jì)算過程中,計(jì)算導(dǎo)數(shù)的時(shí)候,存在無(wú)窮大,tensorflow或keras可以分別利用tf.clip_by_value(value, min, max)或K.clip(value, min, max)設(shè)置上下界。
總結(jié)
                            
                        - 上一篇: 平衡计分卡(转载)
 - 下一篇: 谷歌浏览器解决临时跨域问题