今天天气不好也不坏,早上路上湿漉漉的,跟逗比师兄起的有点晚,踩着自行车就上路了........
打开电脑的第一个想法就是在昨天装好的tensorflow上跑个线性回归的程序,首先碰到的问题就是,既然是线性的,我想看看它的散点图像,就想到了之前一直用的
matplotlib.那么恶心的一天就开始了......
首先,我装的python解释器有三个,第一个是一直使用的(装在C盘,matplotlib一直可用),第二是在D盘Anaconda里的(新装的,没用过), 第三个是在
Anaconda/env文件下tensorflow中的python解释器.
然后我的操作就在pycharm中来回切换解释器,还利用 pip3 install -t 指定包路径(如D:\Anaconda\envs\tensorflow\Lib\site-packages) matplotlib=版本号,结
果把C盘中的matplotlib都搞崩了,无论怎么换都搞不出来.....
下午,郁闷之中看爬虫视频,正好看到scrapy安装的这部分,其步骤如下所示:
#Windows平台 1、pip3 install wheel #安装后,便支持通过wheel文件安装软件,wheel文件官网:https://www.lfd.uci.edu/~gohlke/pythonlibs 2、pip3 install lxml 3、pip3 install pyopenssl # pyopenssl是一个封装了openssl的python模块。使用它可以方便地进行一些加解密操作。 # pywin32与python3有不兼容的问题,在 下载与当前python相兼容的版本,使用pip install 路径名(.wheel)文件方式进行安装 4、下载并安装pywin32:https://sourceforge.net/projects/pywin32/files/pywin32/ # 去220目录下根据你的系统与python解释器下载相应的版本 # 直接使用国内源下载 pip3 --no-cache-dir install -i https://mirrors.aliyun.com/pypi/simple/pypiwin32 --ignore-installed # 因为scrapy是基于twisted开发的,所以需要下载twisted 5、下载twisted的wheel文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 6、执行pip3 install 下载目录\Twisted-17.9.0-cp36-cp36m-win_amd64.whl # 安装本地的twisted文件 # cmd: >> pip3 install D:\tank_files\Twisted-18.9.0-cp36-cp36m-win_amd64.whl 7、pip3 install scrapy # 把1-6做完以后再下载scarpy框架,否则会报错 #Linux平台 1、pip3 install scrapy
看到pip3我就头大,硬着头皮来装一下scrapy吧,结果又是一堆依赖,版本报错. 实在不行,就在cmd中直接按步骤敲,找包,找文件,然后再安装,默认路径就是我
在C盘中的python库, (第4步可忽略,第6步我的电脑是选 Twisted-17.9.0-cp36-cp36m-win_amd32.whl), 一路趟过来,结果安装成功了!
这回就想到了我的matplotlib, 于是在网上找到了一个比较稳定的版本2.0.2,在cmd上安装成功 (换了很多次才成功!) 这下心里有点眉目了,马上用添加路径的
方法给tensorflow加上这个难得的版本,结果还是飘红,心凉了一截,这回只能是tensorflow跟mt版本不兼容的问题了,那么咋办呢?
既然我找不到合适你的,那么你就自己找吧:
最终,它找了个3.0.3版本的:
好吧,今天的故事就到这吧! 搞了一天,图放下面了:
代码如下:
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt num_point = 1000 v_set = [] for i in range(num_point): x1 = np.random.normal(0.0,0.55) # 我们更经常会用到np.random.randn(size)所谓标准正太分布(μ=0, σ=1), # 对应于np.random.normal(loc=0, scale=1, size) y1 = x1*0.2 +0.5 + np.random.normal(0.0,0.05) v_set.append([x1,y1]) x_data = [v[0] for v in v_set] y_data = [v[1] for v in v_set] W = tf.Variable(tf.random.uniform([1],-1.0,1.0),name='W') b = tf.Variable(tf.zeros([1]),name='b') plt.scatter(x_data,y_data,c='r') plt.show() y = W * x_data +b #均方差作为损失 loss = tf.reduce_mean (tf.square(y - y_data),name='loss') # 学习率为0.6 optimizer=tf.train.GradientDescentOptimizer(0.6) #优化训练 train= optimizer.minimize(loss,name='train') sess = tf.Session() init = tf.global_variables_initializer() sess.run(init) print('W=',sess.run(W),'b=',sess.run(b),"loss =",sess.run(loss)) for step in range(200): sess.run(train) print("W=",sess.run(W),'b=',sess.run(b),"loss=",sess.run(loss))
晚安!