恺南头像

恺南

AI实战派程序员
三年踩坑经验的AI转型向导 | 复旦大学图像识别硕士
精选作品集 友情链接
用AI创造无限可能,分享转型经验,让更多人实现AI认知复利

精选作品集

🧠 MBTI性格测试网站
基于MBTI理论的在线性格测试平台,5分钟用AI工具搭建。
🛠️ 恺南AI工具箱导航站
AI工具一站式导航,1小时用AI工具开发上线。
🔧 Bolt Prompt Helper
AI提示词助手Chrome插件,3小时用Bolt New零代码开发。
💰 MCP财务报告生成工具
基于MCP协议的财务报告生成工具,支持10家知名公司自动化财报生成。
查看更多作品集

文章

数据结构总结 —— 树

引言

《c语言学习网》数据结构总结——树
本文旨在根据教程巩固树的数据结构知识和c语言指针的应用,记录一下自己学习过程中的代码,知识讲解参考教程。

一、树的基本概念和术语

树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。如图 是使用树结构存储的集合 {A,B,C,D,E,F,G,H,I,J,K,L,M} 的示意图。对于数据 A 来说,和数据 B、C、D 有关系;对于数据 B 来说,和 E、F 有关系。这就是“一对多”的关系。
图 1(A)树的示例
阅读更多...

go入门,学习用goroutine开启并发

为了学习go语言,和了解并行的基本写法,这里通过一个demo练习
由于已经有了c++和python的基础,所以了解基本语法很快,主要是学习go面向消息的传递机制,以及使用goroutine进行并发操作。
参考资料:
Go 语言教程-Go并发

代码

hello.go

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*一个go的并行计算demo,学习go的基本语法,并计算两个数组元素值为1的数目*/

//包声明:必须在源文件中非注释的第一行指明这个文件属于哪个包
//每个Go程序都包含一个名为main的包
package main

//import告诉Go编译器使用"fmt"包里的元素
//fmt包实现了格式化IO函数
import "fmt"


/*
函数声明方式
func function_name([parameter list])[return_types]{
函数体
}
*/
func sum(arr []int, c chan int){
/*
变量声明的两种方式:
1.var v_name v_type = value
2.v_name := value 根据值自行判定变量类型

注:标识符首字母大写,如Group 1,则可被外部包调用,称为导出。以小写字母开头则只能内部可见。
*/
sum := 0

/*
循环定义方式
1.for init; condition; post{}
2.for condition{}
3.for key, value := range iter{} 用range对slice、map、数组等迭代循环
*/

for _, value := range arr {
/*
条件语句
if 布尔表达式{
//语句
}
*/
if value == 1{
//运算符同c++,包括++,--
sum++
}
}
//值保存到通道(channel)方便并行
c <- sum
}

//main函数是程序开始执行的函数
func main( ){
//字符串输出到控制台,并结尾增加换行符'\n'
fmt.Println("hello world!")

// 创建数组方式一: var variable_name = [SIZE] variable_type{,,,...}
var arr_a =[]int {2, 1, 3, 1, 4, 1, 5}
// 创建数组方式二: variable_name := [SIZE] variable_type{,,,...}
arr_b := []int {1, 4, 5, 2, 1}

/*

*/
ch := make(chan int)

/*
函数调用方式: func([parameter_list])

goroutine: 轻量级线程,支持并发
如果用goroutine调度,则前加go关键字,如go f(x,y,z)
*/
go sum(arr_a, ch)
go sum(arr_b, ch)

/*
通道(channel)可用于两个goroutine之间通过传递一个指定的值来同步运行和通讯。
操作符<-用于指定通道的方向,发送或接收。如:
ch <- v //把v发送到通道ch
v := <- ch //从ch接收数据,并把值赋给v
*/
result_a, result_b := <- ch, <- ch

//输出计算结果
fmt.Println("results", result_a, result_b, result_a + result_b)
}

输出结果

输出结果

如何连接实验室的服务器进行网络训练?

我在用电脑训练CNN时遇到了性能瓶颈(显存不够),当得知实验室的服务器算力更强时,去请教师兄怎么连。

实验室的师兄甩过来服务器的ip和用户名密码,说直接连就行。

直接连?linux都不太会用的小白,咋连?

首先确保连接到实验室的网络,我这边是用校园网或者挂校园网的VPN,然后有下面几种配置方法(方法应该很多,只是列出了我尝试过的这三种):
阅读更多...

  • Copyrights © 2022-2025 Kennan Yang
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信