如何降级tensorflow?
在这里再强调一次,英文版项目60用的是1.3,中文版项目72用的是1.0。版本不符建议降级,不想降级造成的问题自行解决。
如果先前是用pip安装的话,先pip uninstall <你的tf包>,然后再按FAQ的步骤安装正确版本。
如果先前是用conda的社区包安装(并不推荐),则只需指定版本覆盖安装即可,如conda install tensorflow-gpu=1.0
忘了是用哪种方式安装的,激活环境后执行conda list查看。
训练时报错InvalidArgumentError: indices[25, 3] = 6779 is not in [0, 6779)
get_batches()部分有问题。此处单元测试用的是特例,所以通过了也不一定对。自己写些例子print出来测试一下。
检查你的lookup_table,enumerate应该是从0开始,而不是练习的1。
get_batches补充解释视频104
提示
AWS下报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 17
终端执行export LC_CTYPE=en_US.UTF-8
将此命令加入~/.profile可使效果永久化。
或者直接修改locale:
sudo locale-gen "en_US.UTF-8"
sudo dpkg-reconfigure locales
build_rnn如何传入initial_state?
不用传。intial_state并非必须,指定dtype即可32。可以看train部分,final_state通过调用build_rnn得到,而此处调用dynamic_rnn只是指明了dtype,并未传入intial_state。
RNN网络并非都要像KaRNNa那样传入initial_state,如果batch间逻辑关系不强可以不传。感兴趣也可以在通过项目后自己修改代码框架看看改成传递的效果如何。
TensorFlow版本问题(中文版项目要求1.0)
报错ValueError: Attempt to reuse RNNCell with a different variable scope than its first use.
旧版本的项目代码是要用tf1.0跑的,最简单的方法就是降级tf。
不过后面的项目又要用tf1.1,为保持一致性其实可以对代码稍作改动就能用tf1.1.0来跑了。
具体改动见此处。
如果是P3项目的话单元测试也要作出相应改动,如下所示。
提示
报错ValueError: object too deep for desired array
因为你用了tf1.2.0以上的版本,项目要求的是tf1.0,建议降级。
不想降级也有解决方法,改一下测试代码:
提示
AssertionError: Final state wrong shape. Found shape (2, 2, 128, 256)
因为你用了tf1.3,项目要求是tf1.0,需要降级tf。
IndexError: index 1 is out of bounds for axis 0 with size 1
因为你用了tf1.2以上版本,项目要求的是tf1.0,建议降级。
不想降级也有解决方法,改一下代码:
提示
ValueError: Trying to share variable rnn/multi_rnn_cell/cell_0/basic_lstm_cell/kernel, but specified shape (? , ?) and found shape (?, ?)
因为你用了tf1.3以上版本,项目要求是tf1.0,需要降级tf。
ValueError: prefix tensor must be either a scalar or vector, but saw tensor: Tensor("Placeholder:0", dtype=int32)
因为你用了tf1.2以上版本,项目要求的是tf1.0,需要降级tf。