自然语言处理
tensorflow相关
验证tensorflow能否工作的时候调用1
2
3
4
5import tensorflow as tf
sess = tf.Session()
a = tf.constant(10)
b = tf.constant(12)
sess.run(a+b)
其中对第二行命令,报错AttributeError: module ‘tensorflow’ has no attribute ‘Session’
上网查询,发现原因是这个命令属于低版本的tensorflow,想正常使用的话,应该把import tensorflow as tf
注释掉,然后换成1
2import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
Pycharm中报错,
在开头加上1
2
3import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf
tensorflow-gpu
我真的很想骂人了。1
2from tensorflow_core.python.client import device_lib
print(device_lib.list_local_devices())
查看当前可用GPU设备。
第一开始nvidia-smi
指令报错,我真的爆哭。钟哥“冷嘲热讽”地点醒我ge-experience没装等等,让我重新装了之后能够正常使用。他真是个态度差的好男人。
1
2
3from bert import modeling
from bert import optimization
from bert import tokenization
报错,后来发现自己应该pip install bert-tensorflow
并且在pycharm中安装这个bert的package
tensor-flow代码升级
国际惯例,问候老师。
由于github上的代码基本都是基于tensorflow-1.x版本的,而我最近安装的TF是2.0.0,折腾得筋疲力尽真的不能再让我去降级捯饬这儿玩意儿了。
Luckily,查阅Tensorflow中发现其中有一条The easiest way to automatically apply these renames is to use the v2 upgrade script.
但是实践下来发现还有不少错误。第一开始如果直接在powershell中输入命令tf_upgrade_v2 --infile [文件名].py --outfile [升级后文件名].py
会有DLL错误,回忆之前检测tensorflow-gpu版本检测错误过程当中出现的同样错误,发现是由于自己没有激活tensorflow,
于是先:activate tensorflow-gpu
再使用升级指令。
计网笔记
lab1
在计网实验中遇到了些小问题,记录下来。
StartProxy Exception
原因是利用Java开启一个进程后再开启相同进程会抛出这个异常,其中eclipse会提示
Address already in use: NET_Bind
于是上网查询,发现原因是开启服务器后尽管关闭了eclipse,进程仍然没有被终结。解决办法:
netstat -p tcp -ano
查看端口被哪个进程占用taskkill -PID [进程ID] -F
强制终止进程
成功解决。
代理服务器无响应???
我捯饬了一晚上也不知为啥,试了网上能搜到的代码还是出现相同的情况,但是细(cu)心(xin)的我发现HTTP默认端口为80,可是根据java程序里面的函数反馈信息,发现:
443? 于是百度一下,443端口对应的是Https协议,
网页浏览端口,能提供加密和通过安全端口传输的另一种HTTP。
所以我弄的还是不行喽?再找一份能够实现https代理服务器的代码去。
目前来说主要问题是http代理服务器无法访问得了https协议的网站,4399和哈工大门户网站除外,作为一个懒汉我只能再研究研究参考样例里面的c++语言了
_beginthread()和_beginthreadex
1 | unsigned long _beginthread( |
线程结束
1 | //释放线程空间、释放线程TLS空间、调用ExiteThread结束线程。 |
goto 跳过了***的初始化操作
把这个变量放在前面就好了。
“无法查找或打开PDB文件”
参考网址VS“无法查找或打开PDB文件”
如果还出现无法查找或打开 PDB 文件,原因: 因为符号的加载项没有在你运行项目的那个目录。将缓存符号的目录改为项目运行下的目录。
计网杀我也?代码示例里面的accept函数是:acceptSocket = accept(ProxyServer, NULL, NULL);
但我查询相应的accept发现,根本不能写null,函数原型。1
2
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
sockfd 调用socket函数返回的套接字
addr将对端的套接字地址结构的信息保存在其中
addrlen是套接字地址结构的大小
当然, 如果不关心对端的信息, 可以将addr和addrlen都置为NULL.