- 博客(202)
- 收藏
- 关注
原创 Swift-运算符重载
目录1. 全局运算符重载2. 局部重载3. 结构体遵守Equatable 协议4. 枚举 遵守Equatable协议5. 遵守Comparable协议6. 自定义运算符1. 全局运算符重载struct Point { var x = 0, y = 0}// 全局的重载func + (p1: Point, p2: Point) -> Point{ Point(x: p1.x + p2.x, y: p1.y + p2.y)}var p1..
2021-05-03 11:01:59
797
原创 Swift-属性
属性类型 存储属性 在类或者结构体中可以有储存属性; 属性中可以有属性观察器; 存储属性是存储到结构体或者类结构中的; 枚举中不能有存储属性, 因为枚举变量只能存储case...; 计算属性 计算属性的本质是生成对应的setter方法和getter方法; 计算属性中不能有属性观察器; 计算属性不存在成员变量, 存储在结构体或者类的结构中; 在类和结构体中可以有存储属性; 类型属性 类型属性全局只能有一份, 使用static修饰; 类型属性可以在类、结构体、枚举中...
2021-05-01 14:09:33
338
原创 Swift-闭包的简单使用
public func map<T>(_ transform: (Element) throws -> T) rethrows -> [T]参数是一个闭包使用如下:let array = ["Objective-C", "Swift", "HTML", "CSS", "JavaScript"]// 当闭包作为最后一个参数的时候, 可以省略小括号 '()'array.map(){ value -> String in return valu.
2021-04-30 14:52:51
325
原创 Swift- 基础语法
基本命令:// Swift playground支持markdown语法// 开启路径: Editor -> show rendered markdown//: # 一级标题//: ## 二级标题//: ### 三级标题//: [上一页](@previous)效果如下:常量 使用let修饰/** *常量定义: let修饰 * 常量的值不要求在编译时期确定, 但使用之前必须赋值1次 * 常量声明时必须注明类型, 必须要在使用...
2021-04-11 20:54:46
217
原创 线性回归(MXNet gluon)
from mxnet import ndarray as ndfrom mxnet import autogradfrom mxnet import gluon# 1. 处理数据num_inputs = 2num_examples = 1000true_w = [2, -3.4]true_b = 4.2x = nd.random_normal(shape=(num_examples, num_inputs))y = true_w[0]*x[:, 0]+true_w[1]*x[:, .
2021-02-03 14:12:44
157
原创 卷积神经网络(多分类问题 pytorch)
# 手写数字识别 神经网络处理 高级处理import torchimport torch.nn as nn# 数据集处理from torchvision import transformsfrom torchvision import datasetsfrom torch.utils.data import DataLoader# 函数 激活函数等import torch.nn.functional as F# 优化器包import torch.optim as optim# .
2021-02-02 14:45:49
846
1
原创 多分类问题(卷积神经网络 pytorch)
# 手写数字识别 神经网络处理import torch# 数据集处理from torchvision import transformsfrom torchvision import datasetsfrom torch.utils.data import DataLoader# 函数 激活函数等import torch.nn.functional as F# 优化器包import torch.optim as optim# 分批batch_size = 64# 1. 数据处理.
2021-02-02 13:37:36
581
原创 多分类问题(手写数字 pytorch)
# 手写数字识别import torch# 数据集处理from torchvision import transformsfrom torchvision import datasetsfrom torch.utils.data import DataLoader# 函数 激活函数等import torch.nn.functional as F# 优化器包import torch.optim as optim# 分批batch_size = 64# 1. 数据处理transfo.
2021-02-02 10:50:35
313
原创 糖尿病预测(使用数据加载器 pytorch)
import torchfrom torch.utils.data import Datasetfrom torch.utils.data import DataLoaderimport numpy as np# 1. 数据处理class DiabetesDataset(Dataset): def __init__(self, file_path): xy = np.loadtxt(file_path, delimiter=',', dtype=np.float32).
2021-02-01 17:36:53
605
1
原创 糖尿病的预测(pytorch)
import numpy as npimport torch# 糖尿病预测研判# 1. 处理数据xy = np.loadtxt('diabetes.csv.gz', delimiter=',', dtype=np.float32)x_data = torch.from_numpy(xy[:, :-1])y_data = torch.from_numpy(xy[:, [-1]])# 2. 建立模型# 2. 设计模型 继承自torch.nn.Moduleclass Model(torch.
2021-02-01 17:02:16
1619
原创 逻辑回归(pytorch)
import torchvisionimport torchimport torch.nn.functional as F# 1. 准备数据集x_data = torch.Tensor([[1.0], [2.0], [3.0]])y_data = torch.Tensor([[0], [0], [1]])# 2. 设计模型 继承自torch.nn.Moduleclass LinearModel(torch.nn.Module): def __init__(self): .
2021-02-01 15:59:37
132
原创 线性回归(pytorch)
import torch# 1. 准备数据集x_data = torch.Tensor([[1.0], [2.0], [3.0]])y_data = torch.Tensor([[2.0], [4.0], [6.0]])# 2. 设计模型 继承自torch.nn.Moduleclass LinearModel(torch.nn.Module): def __init__(self): super(LinearModel, self).__init__() .
2021-02-01 15:13:44
159
原创 梯度下降算法 - 反向传播(Pytorch)
import torch#数据集x_data = [1.0, 2.0, 3.0]y_data = [2.0, 4.0, 6.0]#创建张量w = torch.Tensor([1.0])#需要计算梯度w.requires_grad = Truedef forward(x): '''计算输出值''' return x * wdef loss(x, y): '''计算损失值''' y_pred = forward(x) return (y_pred.
2021-02-01 11:46:17
224
1
原创 梯度下降算法(python)
# 梯度下降算法x_data = [1.0, 2.0, 3.0]y_data = [1.5, 3.0, 4.5]#参数w = 1.0# 学习率lr = 0.01def forward(x): '''预测值''' return x*wdef cost(xs, ys): '''计算损失和''' cost = 0 for x, y in zip(xs, ys): y_pred = forward(x) cost +..
2021-02-01 10:37:52
256
原创 多线程实战(线程组+信号量+操作队列)
生产问题:1. 上传100个psd2. 每个psd内 100个图3. 需要知道上传完每个psd 和 所有psd的时思路: 1. n个psd之间使用串行处理; 2. psd中的n个图片使用并发处理, 使用信号量控制并发数; 3. 图片上传内部又有3个异网络请求, 使用线程组实现穿透同步;psd实现类://头文件@interface PSDModel : NSObject//psd开始时间@property (nonatomic, strong) NSSt
2021-01-26 11:57:15
228
原创 数组下标越界拦截(OC)
#import "NSArray+LXZArray.h"#import <objc/runtime.h>/** 在iOS中NSNumber、NSArray、NSDictionary等这些类都是类簇,一个NSArray的实现可能由多个类组成。 所以如果想对NSArray进行Swizzling,必须获取到其“真身”进行Swizzling,直接对NSArray进行操作是无效的。 下面列举了NSArray和NSDictionary本类的类名,可以通过Runtime函数取出本类。 N.
2021-01-15 14:16:28
606
1
原创 使用selenium枪手机
from selenium import webdriverfrom time import sleep,ctimeimport threadinghtml = "https://www.vmall.com/product/10086368169358.html"#开启事件个数event_count = 5page_count = 1#配置信息phone_name = "夏日胡杨"phone_set = "5G全网通 8GB+128GB"click_text = "已售完"# 创.
2021-01-06 11:49:30
185
原创 归并排序(java)
分组操作数量级减少//临时数组 以空间换时间private static int[] assist;//数据数组private static int[] datas;//初始化数据datas = new int[]{4, 3, 2, 10, 12, 1, 5, 6, 11, 7};System.out.println("原始数据:"+ Arrays.toString(datas));//开始排序sort(datas);System.out.println(Arrays.t
2020-12-25 17:01:12
121
原创 OC底层performSelector:@selector(test) withObject:nil afterDelay:
-(void)test{ NSLog(@"2");}-(void)test2{ NSLog(@"3");}- (void)viewDidLoad { [super viewDidLoad]; //并发队列 dispatch_queue_t queue = dispatch_queue_create("batac.com", DISPATCH_QUEUE_CONCURRENT); //异步处理任务 dispatch_async(q.
2020-12-21 19:34:40
563
原创 原创 OC底层 - runtime 结构体+位域
使用结构体位域:#import "Student.h"@interface Student(){ //一个字节 可以表示8个BOOL变量 /** 位域 */ struct{ char tial : 1; char rich : 1; char handsome : 1; } _tailRichHandsome;} @end@implementation Student-(
2020-12-07 14:29:03
159
原创 OC底层 - runtime 一个char变量按位保存多个BOOL变量值
在arm64之后, 优化了isa指针实现, 使用共同体实现isa, 可以节省内存:以下使用一个char变量保存多个BOOL变量的值,实现代码:///左移操作#define LPTail (1<<0)#define LPRich (1<<1)#define LPHandsome (1<<2)//// Person.m// demo007_runtime_isa_共用体//// Created by Batac on 2020/12/7..
2020-12-07 13:58:47
222
原创 希尔排序(java)
public static void shell(int[] array){ int h=array.length/2; while (h >= 1){ for (int i=h;i<array.length;i++){//分组 for (int j=i;j>=h;j-=h){//每组进行插入排序 if (array[j-h]>array[j]){ int.
2020-12-03 18:33:49
105
原创 OC底层 - block内修改变量
block的捕获问题block内部修改变量问题讲一下以上两个问题:对于捕获问题, 只有局部变量才能被捕获, 全局变量不需要捕获,直接拿着使用, 但是有一点, 当block在栈中时, block是不能捕获对象型变量, 直接拿着使用, 只有在堆中的block才能捕获对象型变量;对于block内部修改问题, 因为变量捕获有两种, 一种是值捕获, 一种是地址捕获, 对于这两种捕获, 第一种是不允许在block中修改其值, 第二种是不允许在block中修改其地址, 但是可以修改其值;对于对象型变.
2020-12-02 18:07:06
395
原创 OC底层 - block放入堆中
之前已经讲过, block有三个类型 NSStackBlock 、NSMallocBlock 、 NSGlobalBlockNSStackBlock是放在栈中, 访问了auto变量; NSGlobalBlock是放在数据区中, 没有访问auto变量; NSMallocBlock是放在堆中, 是NSStackBlock类型的block调用了copy方法后变换过来的;什么样的条件才会被放入堆中?block作为函数返回值时; 将block赋值给__strong指针时; block作为Cocoa
2020-12-02 10:31:36
143
原创 OC底层 - block类型
ARC无效block继承自NSBlock, NSBlock继承自NSObject;分为三种: NSGlobalBlock 放在数据区 NSMallocBLock 放在堆内存中 NSStackBlock 放在栈内存中怎么样创建三种block?如下图: 没有调用auto变量时, 会创建出NSGlobalBlock类型, 放在数据区中;-(void)test{ int age = 10; void(^block1)(...
2020-12-01 16:43:51
182
原创 OC底层 - block捕获变量
block是oc语言的一种代码块, 底层实现为oc对象, 代码块封装在一个函数中, 函数作为该oc对象的一个变量, 调用时, 直接调用该函数;什么情况下block会捕获变量呢?局部变量(自动变量)如果block中使用了方法中的局部变量, 如下:-(void)test{ int age = 10; void(^block1)(void) ^{ NSLog(@"%ld",age); };}因为局部变量(自动变量)在test方法结束的时候会被自动
2020-12-01 14:25:58
354
原创 OC大话ARC与对象的生命周期
前提是ARC有效函数在返回值得时候, 会将其内部变量全部清空释放; 由alloc/new/copu/mutableCopy生成的对象自己持有, 对象默认修饰符为__strong; 除了2中所生成的对象, 其他都是非自己生成但是自己持有的对象; 对象在没有明确指定修饰符时, 默认为__strong;-(void)test { id obj1 = [[NSObject alloc] init]; id obj2 = [NSMutableArray array]; .
2020-11-26 22:06:11
341
2
原创 OC底层分类 - +load加载顺序
什么时候加载load?+load方法会在runtime时加载类与分类信息, 这时候加载load方法; 类与分类的+load方法在程序运行过程中只会加载一次; 现价在类的+load方法, 再加载分类的+load; 类间加载+load的顺序和编译顺序有关, 先编译先加载; 先调用父类的+load, 再调用子类的+load; 分类之间部分父类子类, +load加载之和编译顺序有关, 先编译先加载;...
2020-11-25 18:45:55
512
原创 go-正则匹配身份证号码
var ( //身份证号码 //rePersonCode = `<span>身份号码:[\s]?(([1-6]\d{5})(\d{4})(\d{2})(\d{2})(\d{4}))</span>` //rePersonCode = `<span>身份号码:[\s]?(([1-6]\d{5})((19\d{2})|(20\d{2}))(\d{2})(\d{2})(\d{4}))</span>` rePersonCode = `<span>.
2020-11-21 21:44:10
1045
原创 go-正则匹配超链接
\s 表示:匹配任意空白字符,等价于[ \t\n\r\f]\S 表示:匹配任意非空字符var ( //超链接 reSuperUrl = `<a[\s\S]+?href="(http[\s\S]+?)"` //以<a开头 [\s\S] \s匹配任意空白字符 \S匹配任意非空字符 +一次到多次 ?当匹配到后边的href的时候停止前面的匹配 //()分组 以http开头 匹配非空字符或者空字符任意一种 +一次或者多次 ?匹配到后边的"则停止匹配,...
2020-11-21 21:01:05
1220
原创 go-正则匹配邮箱
\w 表示字母字符var ( //reEmail = `[1-9]\d{4,}@qq.com` //邮箱 //reEmail = `\w+@\w+.com` //邮箱 reEmail = `[\w\.]+@\w+\.[a-z]{2,3}(\.[a-z]{2,3})?` //邮箱 /** [\w\.]+ 表示字母字符或者.其中一个出现 +1到多次 [a-z]{2,3} 表示a-z任意其中一个字符 出现2到3次 (\.[a-z]{2,3}
2020-11-21 17:44:26
2055
原创 go-正则匹配电话号码
+ 表示1个到多个* 表示0个到多个? 表示0个到1个{m, n} 表示m到n次{0, n} 表示0次到n次[a-z] 表示a到z中任意一个[abc] 表示abc中任意一个[^abc] 表示出了abc的其他任意字符a|b 表示a或者b`1[3456789]\d{9}`第一位: 1开头;第二位: [3456789] 表示3456789中任意一个;之后的表示: \d数字部分 {9} 共9位package mainimport ( "fmt"...
2020-11-21 17:19:49
1114
原创 程序员的自我修养-堆与栈
1.栈内存、堆内存布局从上到下由高地址到低地址, 最上边分配给内核使用,接着是栈内存, 动态库使用内存, 堆内存, 其他内存栈内存是向下扩容, 增加元素, 则栈顶地址降低, 推出元素, 则栈顶地址升高;堆内存是向上扩容;栈内存特点: 栈上的数据在函数返回后就会自动释放;堆内存特点: 程序主动放弃之前都会保持不变;2.函数入栈过程void f(int y){ printf("y=%d", y);} int main(){ int x = 1; ..
2020-11-21 11:59:44
198
1
原创 OC底层原理-内存对其
操作系统在优化数据处理的时候, 会将内存对其, 根据不同的操作系统, 对其长度也不同, 比如macos中对其的方式为16的倍数.在object-c中, oc对象的底层实现为结构体, 结构体也存在内存对其, 而结构体的内存占用大小等于结构体内所有变量内存占用大小之和, 另一条规则为, 结构体的总大小为, 最大变量内存大小的倍数;...
2020-11-20 16:03:58
191
原创 shell脚本-监控内存使用率
#!/bin/bash#Description:#Author: Batac#Created Time: 2020/11/18 09:16#监控内存使用率# /proc/meminfo#内存申请顺序 free-cache-buffer-swapmember_use(){ memory_used=`head -2 /proc/meminfo | awk 'NR==1{t=$2}NR==2{f=$2;print (t-f)*100/t"%"}'` memor.
2020-11-18 09:49:53
365
原创 shell脚本-监控端口是否开启
#!/bin/bash#Description:#Author: Batac#Created time: 2020/11/17 21:20# 监控端口是否开启 服务是否存在port_status(){temp_file=`mktemp port_status.XXX`#1, 判断依赖命令是否存在[ ! -x /usr/bin/telnet ] && echo "telnet: not found command" && exit 1# 测试端口 $1.
2020-11-17 21:40:36
1081
原创 shell脚本-检测一台机器存活状态
#!/bin/bash#Desription:#Author: Batac#Created time: 2020/11.17 20:46#监控主机状态#监控方法 ping ICMP协议# 1分钟ping一次# main# 连续ping3次 如果都不通, 则服务器downfor ((i=0;i<4;i++));do #测试代码 -c 1 表示发送一次ICMP包 if ping -c1 $1 &>/dev/null;then #定义全局变量 .
2020-11-17 21:10:12
602
原创 shell脚本-awk简单使用
1. awk '{print $3}' test //打印第3列2. awk '{print $0}' test //打印所有列3. awk 'NR==3{print $0}' test //打印第3行的所有列4. awk -F ":" '{print $1}' passwd //打印第一列 以:分割5. awk -F ":" 'NR==1{print $1}' passwd //打印第一行第一列 以:分割每列6. awk -F ":" 'NR==1{print $1,$2, $...
2020-11-16 21:18:58
420
原创 shell脚本-sed简单使用
p: 打印d: 删除s: 查找替换c: 更改y: 转换 N D P1. sed 'a\hello word' data //在每一行末尾添加hello world2. sed '3a\hello word' data //在第三行末尾添加hello world3. sed '2,4a\hello word' data //在第2行到第4行末尾添加hello world4. sed '/3.the/a\hellowolrd' data //匹配模式 以3.the开头的一行, 然后在.
2020-11-16 20:09:46
196
原创 shell脚本-ping监听任务
监控服务器ip是否在线:#!/bin/bashfor((;;)) do#$1 输入ip ping -c1 $1 &>/opt/sleep.txt if [ $? -eq 0 ] then echo -e "`date +"%F %H:%M:%S"` : $1 is \033[32m UP \033[0m" sleep 600 else echo -e "`date +"%F %H:%M:%S"` : $1 is \033[31m Down
2020-11-15 16:46:51
364
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人