(仅记录个人问题,能力有限,仅供参考,错了不管)
哦,对了,代码格式化
Ctril+Shift+i..我先按了,你随意。
1.TypeError: ‘dict_keys’ object does not support indexing
版本不兼容问题。
for i in range(m):
#这里有py版本问题
#result_i.append((predict(data[i][0:-1], clf).keys())[0]) #py2.X
#py3.x 字典先转list,再提取索引
firstSides=list((predict(data[i][0:-1], clf).keys()))
firstStr=firstSides[0]
result_i.append(firstStr)
3.Xdict如果要提取索引,建议先转list
2.同包里面为啥就是不给我引用块?有毒?
路径问题。。
如图,这是文件目录结构,我想在 train_random_forest.py里面引用 tree.py,,
from tree import predict 会报错,
为啥?凭什么?
原因:根目录问题。
我文件的根目录是啥我都蒙了,应该是studyPythonMl
改了半天,,神烦。
百度了下。
1:绝对路径, D:\studyPythonMl\study_ML_Python3.x
2:用sys
import sys
sys.path.append(r'D:\Aipanbo\Python_Book_ML\SVM')
import svm
3:我自己的方法
前两种自己百度,
这个里面有个 Resource root,我把study_ML_python3.x设置为根目录。
这样的话,我这样写就o98k了。
from random_Forest.tree import build_tree, predict
3.cPickle版本问题。
py3.x中,改了
import _pickle as pickle
这样就行,
然后问题又来了。
3.1pickle.dump问题
要保存的话,记得用'wb'而不是'w'。原因是这玩意是二进制。
with open(result_file, 'wb') as f:
pickle.dump(trees_result, f)
那么问题来了。。我这样保存的东西,,,打开是乱码,,因为是二进制。
我想打开的文件是可阅读的。
首先。。pickle存储,本质就不是给你拿来读的
4.TensorFlow运行遇到的问题。
1.2018-10-11 16:19:07.281928: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
CPU可以被优化的问题。
开头加2行代码
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
ok。不报错了。但是
2. FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
h5py这个包的问题,升级一下。
搞定!
5.Python创建文件自动添加头注释。
File->settings->Editor->File and Code Templates->Python Script
添加如下代码
# -*- coding: utf-8 -*-
# @File : ${NAME}.py
# @Author: Panbo
# @Date : ${DATE}
# @Desc :
#@license : Copyright(C), Your Company #授权信息
#@Contact : XXXXXX@gmail.com #你的邮箱
#@Software : ${PRODUCT_NAME} #软件
美滋滋!