神经网络和深度学习
什么是神经网络?我们常常用深度学习这个术语来指训练神经网络的过程。神经网络就是一个通过深度学习构建出来的大规模函数。可以通过任意x得到一个想要的结果yReLU激活函数:全称是Rectified Linear Unit。可以理解成max(0,x),这也是你得到一个这种形状的函数的原因。 神经网络的监督学习对于一个神经网络的训练过程,人为的设定某些需要的参数和结果。用来导向神经网络的发展方向。对于图像应用,我们经常在神经网络上使用卷积(Convolutional Neural Network),通常缩写为CNN对于序列数据,经常使用RNN,一种递归神经网络(Recurrent Neural Network) 从历史经验上看,处理非结构化数据是很难的,与结构化数据比较,让计算机理解非结构化数据很难 神经网络规模和其准确性的关系图 神经网络方面的一个巨大突破是从sigmoid函数转换到一个ReLU函数 通过不断修改算法,代码中的细节。来不断提搞构建高效的神经网络。 神经网络的编程基础二分类(Binary...
RabbitMq入门
消息队列MQ是一种常见的上下游“逻辑解耦+物理解耦”的消息通信服务MQ三大功能:流量消峰,应用解耦,异步处理主流MQ:kafka,rocketMQ,rabbitMQ RabbitMQ4大核心概念生产者,消费者,交换机,队列 RabbitMQ的安装这里使用docker的方式进行安装 拉取镜像1docker pull rabbitmq 启动进程1docker run -d --restart=always --name my-rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq 这时已经算是启动好了应用,但是任然无法访问 开启插件123456789101112131415161718// 1、进入容器docker exec -it my-rabbitmq bash // 2、开启插件rabbitmq-plugins enable rabbitmq_management//创建账号rabbitmqctl add_user admin 123//设置用户角色rabbitmqctl set_user_tags admin...
0xffffffff颜色值是怎么读的
平常看到的大多数是十六进制的,#f5f5f5。 但是在自定义控件的时候,有些地方使用了像0xffffffff,这些设置颜色,在百度给的也不太明确,后来查找发现,原来是 在C语言中十六进制数必需以0x开头,以0x开头的数即表明它是一个十六进制的数,真正的数是0x后的值,所以,这种颜色值,0x不用管,接着的两位数ff是表示透明度,再接着的六位数就是平常看的#ffffff了。
coil的使用
https://juejin.cn/post/7098174443700092935
LaunchedEffect:在Jetpack Compose中使用协程
LaunchEffect允许我们在Composable中使用协程 1234@Composable fun DisposableEffect( vararg keys: Any?, effect: DisposableEffectScope.() -> DisposableEffectResult): Unit 像DisposableEffect一样,当Composable进入composition时执行block 当Composable从树上detach时,CoroutineScope执行cancel 参数keys发生变化是,会执行cancel后再次执行effect简而言之,就是支持执行Coroutine的DisposableEffect,会自动执行cancel,不需要手动onDispose
Retrofit和moshi的搭配使用模板
moshi,新一代Json解析库基本用法 12345678910111213141516fun main() = runBlocking { val moshi = Moshi.Builder() .addLast(KotlinJsonAdapterFactory()) .build() val json = """{"_name":"xxx","age":12}""" val person = moshi.adapter(Peoson::class.java).fromJson(json) println(person)}@JsonClass(generateAdapter = true)//为了贴合condegen使用,他可以提高moshi在kotlin中的运行时速率data class Peoson( @Json(name =...
kotlin默认参数没在源代码中定义
在使用kotlin协程时,突然发现一个无法理解的语法。在下图中,是runBlocking的源代码可以发现,他需要接受两个参数,第一个是context,第二个则是我们自己的lambda函数。而实际上,我们并没用传入第一个参数进去,他却可以正常的运行而不报错。他也并没有默认的参数。 解释首先我们要理解的是kotlin是个多平台支持的语言。因此他在实现某些功能时,需要兼容win,linux,java等多平台。例如:我们正在使用的协程库,肯定是一个多平台库。 expect actualKotlin中的expect和actual是一对关键字,用于实现跨平台的编程,特别是在编写多平台库(Commons...
jetpack compose(入门)
为什么我们需要一个新的UI 工具?原因是 View.java 这个类实在是太大了,有太多的代码,它大到你甚至无法在Githubs上查看该文件,因为它实际上包含了 30000 行代码,这很疯狂,而我们所使用的几乎每一个Android UI 组件都需要继承于View. Compose API 的原则 Compose是一个声明式UI系统。 他的一切都是函数 在Compose的世界中,没有类的概念,全都是函数,并且都是顶层函数,因此不会有任何继承和层次机构问题。 组合优于继承 信任单一来源 Compose运行Core 绘制(Draw) Draw 给了你访问Canvas的能力,因此你可以绘制你要的任何自定义View 布局(Layout) 通过布局,我们可以测量事物并相应地放置视图 输入(Input)开发人员可以通过输入访问事件并执行手势 语义(Semantics) 我们可以提供有关树的语义信息 FoundationFoundation的核心是收集上面提到的所有内容,并共同创建一个抽象层...
Android(开发开源库)
只要是编写一个库提供给其他的项目去使用,就可以统称为SDK开发。SDK开发多数情况下是以实现功能逻辑为主的,而不会有ui设计。SDK开发面向的用户群体从来都不是普通用户,而是其他开发者。 简化运行时权限APItypealias关键字可以用于给任意类型指定一个别名,如:typealias PermissionCallback = (Boolean, List<String>) -> Unit
Android开发高级技巧
全局获取context前提:或许目前你还没有为得不到Context而发愁过,因为我们很多的操作是在Activity中进行的,而Activity本身就是一个Context对象。但是,当应用程序的架构逐渐开始复杂起来的时候,很多逻辑代码将脱离Activity类,但此时你又恰恰需要使用Context,也许这个时候你就会感到有些伤脑筋了。解决:Android提供了一个Application类,每当应用程序启动的时候,系统就会自动将这个类进行初始化。而我们可以定制一个自己的Application类,以便于管理程序内一些全局的状态信息,比如全局Context。 123456789class MyApplication : Application() { companion object { lateinit var context: Context } override fun onCreate() { super.onCreate() context = applicationContext ...