0%

偶然间,看到当下的陈坤演唱十几年前的《是否还爱我》,被感动。

听了好几遍。

把歌单独找出来又听了几遍。

看到是电视剧主题曲,又把电视剧找来看了。

不由感叹,现在的电视剧都在干些什么啊,不要说情节了,连逻辑都无法自洽,哎。

老剧可能除了画质差一点,其它比现在好太多了。

看完像雾像雨又像风,我真是又有若干感悟,想写下来,算是自己的一点感想吧,其实我也是第一次看,由于年纪大了,不容易感动了,稍微有些感动不容易,也应该记下来。😂

# 珍惜眼前 活在当下
# 男人没本事是不行的
# 没有一技之长便没有立身之地
# 阿坤人家好歹还会修表
# 不要好高骛远觉得自己不得了那是在你自己的小世界里
# 强行跨越阶级会走火入魔水平达不到在其位德不配也会出事
# 滥情就是渣男
# 适合自己的才是最好的

相对于利用二分查找在有序数组中查找目标来说。
在循环有序数组中查找目标会更复杂一点。
循环有序数组指的是数组是分段有序的(且假设只有两段)。

在查阅学习后整理了本版本Python3.6的实现。

具体实现思路:依据定义,循环有序数组具有一个性质就是对原数组进行中间切分之后会形成两个数组,一个是有序数据,另外一个是比原循环有序数组更小的一个循环有序数组。

所有利用这个性质实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 循环有序(递增)序列查找
# 循环有序区间的性质:从中间将原序列进行切分,会得到一个有序序列和一个更小的循环序列。
## 同样采用二分查找的思路,只是多做一步,在采取中间拆分的时候需要多判断一步是否是递增
def cycle_binary_serch(alist, target):
low = 0
high = len(alist) - 1
while low <= high:
mid = (low + high)//2
if alist[mid] == target:
return mid;
if alist[low] <= alist[mid]: # 若前半部分是有序的
if (alist[low] <= target) and (target < alist[mid]): # 判断目标值是否在有序区间
high = mid - 1 # 若目标在有序区间范围,则在有序区间中查找
else:
low = mid + 1 # 若目标不在有序区间范围,则在另一循环有序区间查找
else: # 若后半部分是有序的
if (alist[mid] < target) and (target <= alist[high]): # 判断目标是否在有序区间
low = mid + 1 # 若目标在有序区间,则在有序区间中查找
else:
high = mid - 1 # 若目标不再有序区间,则在另一循环有序区间查找

cycle_binary_serch([5,6,30,1,2,3,4],3)

另附二分查找实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 二分查找
## 注意:需要针对的是有序的序列。
## 流程:截取中间的值与目标值匹配,查看值在那个区间,然后以1/2的速度缩小搜索区间。以达到加快搜索的目的。
def binary_search(alist,target):
low = 0
high = len(alist) - 1
while low <= high:
mid = (low + high)//2
guess = alist[mid]
if guess < target:
low = mid + 1
elif guess > target:
high = mid - 1
else:
return mid
binary_search([1,2,3,4,5,6,30,10],30)

图像分类是图像级别的,图像语义分割是到像素点级别的。

FCN可作为图像语义分割的基础框架参考。FCN论文,FCN原作代码

FCN的提出主要解决了:一般的CNN分类网络,如VGG和Resnet,会在网络的最后加入全连接层,经过softmax获取类别概率信息,但这个概率是一维的,所以只能对整个图片进行分类,是谓图像级别。

FCN结构提出将后面几个全连接替换成卷积,便可以获得一张2维的feature map,然后再接softmax便可获得每个像素点的分类信息,是谓像素点级别。可以支持解决图像语义分割问题。

图像语义分割整体流程:下采样+上采样 > 特征融合 > 获取像素级别类别判断

gplearn

主要思想是利用遗传算法的理念对特征进行有监督的符号编码,期望利用加入的随机性来发现一些对于机器学习算法难以发现的非线性关系。

下面示例代码说明了如何利用auc指标来衡量GP迭代过程的中的选择指标。

from sklearn.metrics import roc_auc_score,roc_curve,auc
from gplearn.fitness import make_fitness
def auc_score_lg(y_true, y_pred, sample_weight=None):
    fpr, tpr, thresholds   = roc_curve(y_true, y_pred, sample_weight)
    return auc(fpr,tpr)
auc_scores = make_fitness(function=auc_score_lg, greater_is_better=True)


function_set = ['add', 'sub', 'mul', 'div', 'sqrt', 'log', 'abs', 'neg', 'inv', 'max', 'min', 'sin', 'cos', 'tan']
gp = SymbolicTransformer(generations=20, population_size=20000,
                         hall_of_fame=200, n_components=200,
#                          metric='spearman',
                         metric=auc_scores,
                         function_set=function_set,
                         parsimony_coefficient='auto',
                         max_samples=0.9, verbose=1,
                         random_state=0, n_jobs=8)
gp.fit(train_train_X, train_train_Y)