• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang data.NewBitset函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/dukejeffrie/htm/data.NewBitset函数的典型用法代码示例。如果您正苦于以下问题:Golang NewBitset函数的具体用法?Golang NewBitset怎么用?Golang NewBitset使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了NewBitset函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: TestRegionFeedBack

func TestRegionFeedBack(t *testing.T) {
	l := NewRegion(RegionParameters{
		Name:                 "Single Region",
		Learning:             true,
		Height:               4,
		Width:                500,
		InputLength:          64,
		MaximumFiringColumns: 5,
		MinimumInputOverlap:  2,
	})
	l.RandomizeColumns(32)
	inputA := data.NewBitset(64).Set(1, 5)
	inputB := data.NewBitset(64).Set(2, 10)

	maxAttempts := 77
	for !l.SensedInput().Equals(*inputB) && maxAttempts > 0 {
		maxAttempts--
		l.ConsumeInput(*inputA)
		l.ConsumeInput(*inputB)
	}
	oB := l.Output().Clone()
	l.ConsumeInput(*inputA)
	oA := l.Output().Clone()
	fA := l.FeedBack(*oA)
	if !fA.Equals(*inputA) {
		t.Errorf("Feedback for A=%v does not match: %v", *inputA, *fA)
	}
	fB := l.FeedBack(*oB)
	if !fB.Equals(*inputB) {
		t.Errorf("Feedback for B=%v does not match: %v", *inputB, *fB)
	}
}
开发者ID:postfix,项目名称:htm-1,代码行数:32,代码来源:region_test.go


示例2: TestTp_AAxB

func TestTp_AAxB(t *testing.T) {
	if testing.Short() {
		t.SkipNow()
	}
	test := NewTpTest(t)
	test.Verify = false
	random := data.NewBitset(test.layer0.InputLength)
	for i := 0; i < 8000; i++ {
		test.Step(*test.inputA)
		test.Step(*test.inputA)
		random.Reset().Set(rand.Intn(test.layer0.InputLength))
		test.Step(*random)
		test.Step(*test.inputB)
	}

	aOrB := data.NewBitset(test.layer0.InputLength)
	aOrB.ResetTo(*test.inputA)
	aOrB.Or(*test.inputB)

	// After ...,B comes A.
	test.checkPredictedInput(*test.inputA)

	// After ...,A comes A.
	test.Step(*test.inputA)
	test.checkPredictedInput(*test.inputA)

	// After ...,A,A comes anything.
	test.Step(*test.inputA)
	test.Log("Predict anything:", test.layer0.PredictedInput())

	// Then comes B.
	random.Reset().Set(rand.Intn(test.layer0.InputLength))
	test.Step(*random)
	test.checkPredictedInput(*test.inputB)
}
开发者ID:postfix,项目名称:htm-1,代码行数:35,代码来源:tp_test.go


示例3: TestFindBestSegment

func TestFindBestSegment(t *testing.T) {
	c := NewColumn(64, 4)
	active1 := data.NewBitset(64).Set(2, 20, 22)
	active2 := data.NewBitset(64).Set(11, 31)
	update := c.distal[1].CreateUpdate(-1, *active1, 2)
	c.distal[1].Apply(update, true)
	update = c.distal[2].CreateUpdate(-1, *active2, 2)
	c.distal[2].Apply(update, true)

	state := data.NewBitset(64).Set(2)
	cell, s, overlap := c.FindBestSegment(*state, 1, false)
	if cell != 1 || s != 0 || overlap != 1 {
		t.Errorf("FindBestSegment(%v,minOverlap=%d): %d, %v, %d", *state, 1, cell, s, overlap)
	}
	cell, s, overlap = c.FindBestSegment(*state, 2, false)
	if cell != -1 || s != -1 {
		t.Errorf("FindBestSegment(%v,minOverlap=%d): %d, %v, %d", *state, 2, cell, s, overlap)
	}
	state.Set(22)
	cell, s, overlap = c.FindBestSegment(*state, 2, false)
	if cell != 1 || s != 0 || overlap != 2 {
		t.Errorf("FindBestSegment(%v,minOverlap=%d): %d, %v, %d", *state, 2, cell, s, overlap)
	}
	state.Reset().Set(2, 20, 11, 31)
}
开发者ID:postfix,项目名称:htm-1,代码行数:25,代码来源:column_test.go


示例4: TestPredict

func TestPredict(t *testing.T) {
	c := NewColumn(64, 4)
	active1 := data.NewBitset(64).Set(2, 20)
	active2 := data.NewBitset(64).Set(11, 31)
	update := c.distal[1].CreateUpdate(-1, *active1, 2)
	c.distal[1].Apply(update, true)
	update = c.distal[2].CreateUpdate(-1, *active2, 2)
	c.distal[2].Apply(update, true)

	state := data.NewBitset(64).Set(2)
	c.Predict(*state, 1)
	pred := c.Predictive()
	if !pred.AllSet(1) || pred.NumSetBits() != 1 {
		t.Errorf("Should have predicted only cell 1, but got %v", pred)
		t.Log(*c.distal[1])
	}

	state.Set(11)
	c.Predict(*state, 1)
	pred = c.Predictive()
	if !pred.AllSet(1, 2) || pred.NumSetBits() != 2 {
		t.Errorf("Should have predicted cells 1 and 2, but got %v", pred)
		t.Log(*c.distal[1])
		t.Log(*c.distal[2])
	}
}
开发者ID:postfix,项目名称:htm-1,代码行数:26,代码来源:column_test.go


示例5: NewPermanenceMap

func NewPermanenceMap(numBits int) *PermanenceMap {
	result := &PermanenceMap{
		config:         DefaultPermanenceConfig,
		permanence:     make(map[int]float32),
		synapses:       data.NewBitset(numBits),
		receptiveField: data.NewBitset(numBits),
	}
	return result
}
开发者ID:postfix,项目名称:htm-1,代码行数:9,代码来源:permanence_map.go


示例6: BenchmarkColumnOverlap

func BenchmarkColumnOverlap(b *testing.B) {
	c := NewColumn(64, 1)
	connections := []int{1, 3, 5, 8, 11}
	c.ResetConnections(connections)
	input := data.NewBitset(64).Set(1, 5, 22)
	result := data.NewBitset(64).Set(1, 5, 22, 60)
	b.ResetTimer()
	for i := 0; i < b.N; i++ {
		result.Overlap(*input)
	}
}
开发者ID:postfix,项目名称:htm-1,代码行数:11,代码来源:column_test.go


示例7: NewColumn

func NewColumn(inputSize, height int) *Column {
	result := &Column{
		active:         data.NewBitset(height),
		predictive:     data.NewBitset(height),
		proximal:       segment.NewDendriteSegment(inputSize),
		learning:       -1,
		learningTarget: 0,
		distal:         make([]*segment.DistalSegmentGroup, height),
	}
	for i := 0; i < height; i++ {
		result.distal[i] = segment.NewDistalSegmentGroup()
	}
	return result
}
开发者ID:postfix,项目名称:htm-1,代码行数:14,代码来源:column.go


示例8: TestLearn64PatternAB_5

func TestLearn64PatternAB_5(t *testing.T) {
	if testing.Short() {
		t.SkipNow()
	}
	rand.Seed(1979)
	ds := segment.NewDendriteSegment(64)
	ds.Reset(1, 3, 5, 8, 13, 21)
	patternA := data.NewBitset(64)
	patternA.Set(2, 4, 22, 24, 42, 44, 62)
	patternB := data.NewBitset(64)
	patternB.Set(22, 23, 24, 25, 26)
	TryToLearn(t, 90, ds, 5, *patternA, *patternB)
	t.Log(ds.Connected())
}
开发者ID:postfix,项目名称:htm-1,代码行数:14,代码来源:learn_strategy_test.go


示例9: InitializeNetwork

func (d *Drop) InitializeNetwork() {
	params := htm.RegionParameters{
		Name:                "0-drop",
		Width:               640,
		Height:              8,
		MinimumInputOverlap: 1,
		InputLength:         64,
		Learning:            true,
	}
	params.MaximumFiringColumns = params.Width / 50
	d.step = 0
	d.region0 = htm.NewRegion(params)
	d.region0.RandomizeColumns(params.InputLength / 2)

	params.Name = "1-drop"
	params.Width = 2000
	params.Height = 5
	params.InputLength = d.region0.Output().Len()
	params.MaximumFiringColumns = params.Width / 100
	d.region1 = htm.NewRegion(params)
	d.region1.RandomizeColumns(params.InputLength / 2)

	params.Name = "final"
	params.Width = 200
	params.Height = 3
	params.InputLength = d.region1.Output().Len()
	params.MaximumFiringColumns = 1
	d.region3 = htm.NewRegion(params)
	d.region3.RandomizeColumns(params.InputLength / 2)
	d.predicted = data.NewBitset(d.region3.PredictiveState().Len())
	d.patterns = make(map[string]string)
}
开发者ID:postfix,项目名称:htm-1,代码行数:32,代码来源:drop_test.go


示例10: TestBroadenSynapses

func TestBroadenSynapses(t *testing.T) {
	ds := NewDendriteSegment(64)
	ds.Reset(1, 3, 5, 8, 13)
	input := data.NewBitset(64)
	input.Set(1, 5, 22)
	for i := 0; i < 1000 && ds.permanence[3] >= ds.Config().Minimum; i++ {
		ds.narrow(*input)
	}
	if ds.permanence[22] != 0 {
		t.Errorf("Permanence for non-connected should be zero: %v", ds.permanence)
	}
	input.Reset()
	input.Set(1, 8, 22)
	overlap := ds.broaden(*input, 0)
	if overlap != 1 {
		t.Errorf("Only bit 1 should overlap, not %d: %v", overlap, *ds)
	}
	if ds.permanence[1] <= ds.permanence[3] {
		t.Errorf("Permanence scores did not improve: %v", ds.permanence)
	}
	if ds.permanence[1] != ds.permanence[5] {
		t.Errorf("Permanence scores must be uniform: %v", ds.permanence)
	}
	if ds.permanence[8] != ds.Config().Minimum || ds.permanence[22] != ds.Config().Minimum {
		t.Errorf("Permanence for broadened synapse should be %f: %v", ds.Config().Minimum, ds.permanence)
	}
}
开发者ID:postfix,项目名称:htm-1,代码行数:27,代码来源:segment_test.go


示例11: TryToLearn

func TryToLearn(t *testing.T, maxTries int, ds *segment.DendriteSegment,
	minOverlap int, inputs ...data.Bitset) int {
	result := 0
	overlap := data.NewBitset(inputs[0].Len())
	for !ds.Connected().Equals(inputs[0]) {
		input := inputs[result%len(inputs)]
		overlap.ResetTo(input)
		overlap.And(ds.Connected())
		active := overlap.NumSetBits() >= minOverlap || rand.Float32()+ds.Boost > 3.0
		ds.Learn(input, active, minOverlap)
		result++
		if active {
			fmt.Print("N")
		} else {
			fmt.Print("B")
		}
		if result > maxTries {
			t.Error(fmt.Sprintf("Failed after %d rounds.", maxTries))
			return result
		}
	}
	fmt.Println()
	t.Log(fmt.Sprintf("Learned in %d rounds.", result))
	return result
}
开发者ID:postfix,项目名称:htm-1,代码行数:25,代码来源:learn_strategy_test.go


示例12: TestMinOverlap

func TestMinOverlap(t *testing.T) {
	l := NewRegion(RegionParameters{
		Name:                 "Single Region",
		Learning:             true,
		Height:               4,
		Width:                100,
		InputLength:          2048,
		MaximumFiringColumns: 40,
		MinimumInputOverlap:  1,
	})
	columnRand.Seed(0)
	l.RandomizeColumns(20)

	input := data.NewBitset(2048)
	input.SetRange(0, 20)

	l.ConsumeInput(*input)
	output := l.Output()

	if output.IsZero() {
		t.Errorf("Output is empty: %v", output)
	}
	t.Log(output)

	l.MinimumInputOverlap = 4

	l.ConsumeInput(*input)
	output = l.Output()
	if !output.IsZero() {
		t.Errorf("Output should be empty: %v", output)
	}
}
开发者ID:postfix,项目名称:htm-1,代码行数:32,代码来源:region_test.go


示例13: TestCategoryEncoder

func TestCategoryEncoder(t *testing.T) {
	s, err := NewCategorySensor(64, 4, "A", "B", "C")
	if err != nil {
		t.Fatal(err)
	}
	if err = s.Encode("A"); err != nil {
		t.Error(err)
	}
	b := data.NewBitset(64).SetRange(0, 4)
	if !s.Get().Equals(*b) {
		t.Errorf("Encode failed. Expected: %v, but got: %v", *b, s.Get())
	}
	if v := s.Decode(*b); v != "A" {
		t.Errorf("Decode failed. Expected: %v, but got: %v (%v)", "A", v, *s)
	}
	if err = s.Encode("B"); err != nil {
		t.Error(err)
	}
	b.Reset().SetRange(4, 8)
	if !s.Get().Equals(*b) {
		t.Errorf("Encode failed. Expected: %v, but got: %v", *b, s.Get())
	}
	if v := s.Decode(*b); v != "B" {
		t.Errorf("Decode failed. Expected: %v, but got: %v (%v)", "B", v, *s)
	}

	err = s.Encode("Other")
	if err == nil {
		t.Error("Should have failed to encode unknown category \"Other\":", *s)
	}
}
开发者ID:postfix,项目名称:htm-1,代码行数:31,代码来源:sensor_test.go


示例14: TestTp_LearnAAB

func TestTp_LearnAAB(t *testing.T) {
	if testing.Short() {
		t.SkipNow()
	}
	test := NewTpTest(t)
	test.Verify = false
	for i := 0; i < 100; i++ {
		test.Step(*test.inputA)
		test.Step(*test.inputA)
		test.Step(*test.inputB)
	}

	aOrB := data.NewBitset(test.layer0.InputLength)
	aOrB.ResetTo(*test.inputA)
	aOrB.Or(*test.inputB)

	// After ...,B comes A.
	test.checkPredictedInput(*test.inputA)

	// After ...,A comes A.
	test.Step(*test.inputA)
	test.checkPredictedInput(*test.inputA)

	// After ...,A,A comes A or B.
	test.Step(*test.inputA)
	test.checkPredictedInput(*aOrB)
}
开发者ID:postfix,项目名称:htm-1,代码行数:27,代码来源:tp_test.go


示例15: AddNoise

func (d *Drop) AddNoise() {
	noise := data.NewBitset(d.region0.InputLength)
	noise.Set(rand.Intn(noise.Len()), rand.Intn(noise.Len()))

	d.region0.ConsumeInput(*noise)
	d.region1.ConsumeInput(d.region0.Output())
	d.region3.ConsumeInput(d.region1.Output())
}
开发者ID:postfix,项目名称:htm-1,代码行数:8,代码来源:drop_test.go


示例16: BenchmarkNarrowSynapses

func BenchmarkNarrowSynapses(b *testing.B) {
	pm := NewPermanenceMap(64)
	pm.Reset(1, 3, 5, 8, 13)
	input := data.NewBitset(64)
	input.Set(1, 5, 22)
	for i := 0; i < b.N; i++ {
		pm.narrow(*input)
	}
}
开发者ID:postfix,项目名称:htm-1,代码行数:9,代码来源:permanence_map_test.go


示例17: PredictedInput

func (l *Region) PredictedInput() data.Bitset {
	dest := data.NewBitset(l.InputLength)
	for _, col := range l.columns {
		if !col.Predictive().IsZero() {
			dest.Or(col.Connected())
		}
	}
	return *dest
}
开发者ID:postfix,项目名称:htm-1,代码行数:9,代码来源:region.go


示例18: TestDistalSegmentGroup

func TestDistalSegmentGroup(t *testing.T) {
	group := NewDistalSegmentGroup()
	v1 := data.NewBitset(64).Set(1, 10)
	v2 := data.NewBitset(64).Set(2, 20)
	u1 := group.CreateUpdate(-1, *v1, 2)
	u2 := group.CreateUpdate(-1, *v2, 2)
	group.AddUpdate(u1)
	group.AddUpdate(u2)

	active := data.NewBitset(64).Set(10)

	if group.HasActiveSegment(*active, 1) {
		t.Errorf("Test is broken, group should be empty. %v", *group)
	}
	group.ApplyAll(true)
	if !group.HasActiveSegment(*active, 1) {
		t.Errorf("Expected at least one active segment: %v", *group)
	}
	sIndex, sOverlap := group.ComputeActive(*active, 1, false)
	if sIndex != 0 {
		t.Errorf("Unexpected active segment. Expected: %d, but got: %d. %v", 0, sIndex, *group)
	}
	if sOverlap != 1 {
		t.Errorf("Unexpected overlap. Expected: %d, but got: %d. %v", 1, sOverlap, *group)
	}

	// Disconnect bits 2 and 20 in segment @1.
	config := group.segments[1].Config()
	group.segments[1].Set(2, config.Minimum)
	group.segments[1].Set(20, config.Minimum)

	// Make active state weakly better connected to @1 but strongly to @0.
	active.Reset().Set(1, 2, 20)

	sIndex, _ = group.ComputeActive(*active, 1, true)
	if sIndex != 1 {
		t.Errorf("Unexpected active segment. Expected: %d, but got: %d. %v", 0, sIndex, *group)
	}
	sIndex, _ = group.ComputeActive(*active, 1, false)
	if sIndex != 0 {
		t.Errorf("Unexpected active segment. Expected: %d, but got: %d. %v", 0, sIndex, *group)
	}
}
开发者ID:postfix,项目名称:htm-1,代码行数:43,代码来源:segment_test.go


示例19: TestLearn64PatternA_5

func TestLearn64PatternA_5(t *testing.T) {
	if testing.Short() {
		t.SkipNow()
	}
	rand.Seed(1979)
	ds := segment.NewDendriteSegment(64)
	ds.Reset(1, 3, 5, 8, 13, 21)
	patternA := data.NewBitset(64)
	patternA.Set(2, 4, 22, 24, 42, 44, 62)
	TryToLearn(t, 80, ds, 5, *patternA)
	t.Log(ds)
}
开发者ID:postfix,项目名称:htm-1,代码行数:12,代码来源:learn_strategy_test.go


示例20: FeedBack

func (l *Region) FeedBack(output data.Bitset) *data.Bitset {
	dest := data.NewBitset(l.InputLength)
	output.Foreach(func(cellId int) {
		col := l.columns[cellId/l.Height()]
		cell := cellId % l.Height()
		if !col.Distal(cell).HasActiveSegment(output, l.MinimumInputOverlap) {
			// Not a predicted cell, must be active from fast-forward.
			dest.Or(col.Connected())
		}
	})
	return dest
}
开发者ID:postfix,项目名称:htm-1,代码行数:12,代码来源:region.go



注:本文中的github.com/dukejeffrie/htm/data.NewBitset函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang data.Bitset类代码示例发布时间:2022-05-23
下一篇:
Golang vector.GslVectorUshort类代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap