漳州古城,建筑风貌完好,商业业态和古城结合的很好~
Algorithm
本周选择的算法题是:Split Linked List in Parts。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def splitListToParts(self, head: Optional[ListNode], k: int) -> List[Optional[ListNode]]:
# 计算链表长度
length = 0
curr = head
while curr:
length += 1
curr = curr.next
# 计算每部分的基本长度和余数
base_size, remainder = divmod(length, k)
result = []
curr = head
for i in range(k):
result.append(curr)
# 计算当前部分的大小
size = base_size + (1 if i < remainder else 0)
# 移动到下一部分的起始位置
for _ in range(size - 1):
if curr:
curr = curr.next
# 断开链接
if curr:
next_node = curr.next
curr.next = None
curr = next_node
return result
Review
The Long, Strange Journey of Language Models
文章的作者以深入浅出的方式,带我们回顾了 LM 的发展历程。从 20 世纪 50 年代的初步探索,到如今成为人工智能领域的中坚力量,LM 的演变历程充满了传奇色彩 — 它们最初只是作为数据处理的一个辅助工具,而今却成为了解决复杂问题的利器。
作者特别提到了 BERT 模型在 2018 年的突破性进展,BERT 的出现,标志着 LM 进入了一个新的时代,它不仅在自然语言处理领域取得了显著成就,更在理解语言的深层次含义上迈出了重要一步。
但 LM 是否具备真正的理解能力?业界仍然有人用 “随机鹦鹉” 这个词来批评它,作者对此持有乐观态度,认为随着数据集的不断扩大和模型的不断优化,LM 的潜力将得到更充分的挖掘,他认为,这些模型将像灰姑娘一样,从边缘走向中心(就像过去那样),解决更多看似不可能的问题。
Tip
Java 直接调用 tensorflow 模型时,需要一个 feature.json
文件,它其实是一个 schema 文件,描述了模型预期的输入格式,然后在推理方法的实现中,用 feature.json
文件正确地将输入数据转换为张量,并使用 runner.feed 方法将这些张量(输入数据、特征)传递给模型进行推理。
假设你的模型接受两个输入特征:age
和 income
。那么 feature.json
文件可能看起来像这样:
{
"age": 30,
"income": 50000
}
将 featureMap
(来自 JSON) 的值转换为 Tensor:
Tensor<Integer> ageTensor = Tensors.create((Integer) featureMap.get("age"));
Tensor<Float> incomeTensor = Tensors.create(((Number) featureMap.get("income")).floatValue());
构建 feed map:
Session.Runner runner = session.runner();
runner.feed("input_age", ageTensor);
runner.feed("input_income", incomeTensor);
执行推理并获取结果:
Tensor<?> result = runner.fetch("output").run().get(0);
float[][] outputMatrix = new float[1][1];
result.copyTo(outputMatrix);
System.out.println("Model output: " + outputMatrix[0][0]);
Share
阿里云提供了一个特殊的 MetaServer,可用于判断当前主机是否为阿里云主机:
import requests
def is_aliyun_host():
try:
response = requests.get('http://100.100.100.200/latest/meta-data/', timeout=1)
return response.status_code == 200
except requests.exceptions.RequestException:
return False
if __name__ == '__main__':
if is_aliyun_host():
print("This is an Aliyun host.")
else:
print("This is not an Aliyun host.")